检查列表中是否存在元素 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
有没有办法检查 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