在python中搜索列表中的mutliple值

Jam*_*len 2 python string list

假设我有一个列表:

items = ['matt', 'zen', 'a', 'b', 'c', 'cat', 'dog']

if elem in items 
`if 'a' 'b' 'c' found then return 1
Run Code Online (Sandbox Code Playgroud)

每当elem在列表中找到'a','b','c'并返回一个值.有没有办法以list这种方式定义?我不希望有多个if条件(如果可以避免的话).

jam*_*lak 6

检查每件物品是否在 items

>>> items = ['matt', 'zen', 'a', 'b', 'c', 'cat', 'dog']
>>> {'a', 'b', 'c'}.issubset(items)
True
Run Code Online (Sandbox Code Playgroud)

for循环内部,仍然利用s 的快速(O(1)分期)查找速度set:

find = {'a', 'b', 'c'}
for elem in items:
    if elem in find:
        # do stuff
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这会增加可散列项目的限制. (3认同)
  • @JamesHallen`如果有的话(x in in string in x in('at','bat','cat')) (2认同)