根据另一个列表python返回列表中项目的索引

mat*_*bit -1 python list

我需要在另一个列表中找到列表项.

例如:

a = ['s','u','v']
b = ['u','s','a']
Run Code Online (Sandbox Code Playgroud)

我想得到一个布尔数组(或列表),它指示a中的每个项目,如果b中存在此项目.所以对于那个例子我会得到:

[1,1,0]
Run Code Online (Sandbox Code Playgroud)

谢谢

Aly*_*sen 5

作为列表理解:

>>> a = ['s', 'u', 'v']
>>> b = ['u', 's', 'a']
>>> [i in b for i in a]
[True, True, False]
>>> [int(i in b) for i in a]
[1, 1, 0]
Run Code Online (Sandbox Code Playgroud)

最重要的操作是i in b返回元素是否i存在于集合中b.有关列表推导的信息,请阅读此处.

这也表明了True == 1False == 0.bool实际上是一个子类int.如果他们不需要ints,保持他们True并且False会更快.

如果b是a set,你可能会想要做的更有效,这取决于你的大小b.这可以用来完成set(b).