Pythonic检查列表中是否有多个元素的方法

时间:2011-11-17 14:48:01

标签: list python

我在Python中有这段代码:

if 'a' in my_list and 'b' in my_list and 'c' in my_list:
    # do something
    print my_list

有更多的pythonic方式吗?

类似(无效的python代码如下):

if ('a', 'b', 'c') individual_in my_list:
    # do something
    print my_list

3 个答案:

答案 0 :(得分:13)

if set("abc").issubset(my_list):
    # whatever

答案 1 :(得分:10)

最简单的形式:

if all(x in mylist for x in 'abc'):
    pass

通常,当这些列表中包含大量项目时,最好使用可以查找项目的数据结构,而不必比较每个项目,例如set

答案 2 :(得分:3)

您可以使用set运算符:

if set('abc') <= set(my_list):
    print('matches')

superset = ('a', 'b', 'c', 'd')
subset = ('a', 'b')
desired = set(('a', 'b', 'c'))

assert desired <= set(superset) # True
assert desired.issubset(superset) # True
assert desired <= set(subset) # False