18

2つのリストaとbの場合、両方に表示される値のインデックスを取得するにはどうすればよいですか?例えば、

a = [1, 2, 3, 4, 5]
b = [9, 7, 6, 5, 1, 0]

return_indices_of_a(a, b)

[0,4]を返し(a[0],a[4]) = (1,5)ます。

4

3 に答える 3

27

これを行うための最良の方法は、内部のメンバーシップをチェックするだけbなので、を作成することです。set

>>> a = [1, 2, 3, 4, 5]
>>> b = set([9, 7, 6, 5, 1, 0])
>>> [i for i, item in enumerate(a) if item in b]
[0, 4]
于 2012-04-28T19:55:19.727 に答える
6
def return_indices_of_a(a, b):
  b_set = set(b)
  return [i for i, v in enumerate(a) if v in b_set]
于 2012-04-28T19:57:09.893 に答える
3

より大きなリストの場合、これは役立つ場合があります。

for item in a:
index.append(bisect.bisect(b,item))
    idx = np.unique(index).tolist()

必ずnumpyをインポートしてください。

于 2015-05-29T12:03:04.480 に答える