检查列表中是否存在元素 Python

Check that elements exist within a list Python

有没有办法检查 list1 中的元素是 list2 的一部分? 我试过的是在下面......但我没有得到输出。我猜 'in' 函数只处理单个元素?

pattern=['Tacos', 'Pizza']
Foods=['Tacos', 'Pizza', 'Burgers', 'Fries', 'Ice-cream']

if pattern in foods:
    print('yes')

因为pattern是一个列表,但是你想检查模式列表中的每个元素,那么你需要使用循环。

pattern=['Tacos', 'Pizza']
Foods=['Tacos', 'Pizza', 'Burgers', 'Fries', 'Ice-cream']

for patt in pattern:
    if patt in foods:
        print('yes')

您可以将其作为简单的集合逻辑来完成。

set(pattern).issubset(foods)

从模式中减去食物,列表应该为空。

len( set(pattern) - set(Foods) ) == 0

或者,交点应该等于模式的长度

len( set(pattern) & set(Foods) ) == len(pattern)

使用set逻辑:

>>> set(pattern).issubset(foods)
True

在列表上使用迭代(这通常效率较低,特别是如果 pattern 很长,但了解它是如何工作的是很有用的,而你原来的 in 检查没有):

>>> all(food in foods for food in pattern)
True