我需要在另一个列表中找到列表项.
例如:
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)
谢谢
作为列表理解:
>>> 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 == 1和False == 0.bool实际上是一个子类int.如果他们不需要是ints,保持他们True并且False会更快.
如果b是a set,你可能会想要做的更有效,这取决于你的大小b.这可以用来完成set(b).
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |