>>> list1 = ['tomato', 'onions','egg']
>>> list2 = ['Two tomatos', 'two onions','two eggs','salsa']
>>> all(any(i in j for j in list2) for i in list1)
True
list1 = ['tomato', 'onions','egg']
list2 = ['Two tomatos', 'two onions','two eggs','salsa']
for i in list1:
for j in list2:
if i in j:
print("something to ", i, " and ", j)
list1 = ['tomato', 'onions','egg']
list2 = ['Two tomatos', 'two onions','two eggs','salsa']
result = all([any([keyword in string for string in list2]) for keyword in list1])
第一个列表理解[keyword in string for string in list2]检查关键字是否至少存在于list2的所有字符串中,并生成布尔值列表。我们使用any来确定是否有任何结果是True
第二个列表理解构建在第一个列表理解[any([keyword in string for string in list2]) for keyword in list1]的基础上,并检查所有关键字在list2的所有字符串中是否最少出现。我们使用all检查所有结果是否都是True
可以将生成器表达式与
any
/all
函数结合使用:如果列表1中的单词存在于列表2中的某个元素中,则可以遍历列表并执行某些操作,例如:
您可以使用list comprehension、
any
和all
执行单个命令第一个列表理解
[keyword in string for string in list2]
检查关键字是否至少存在于list2
的所有字符串中,并生成布尔值列表。我们使用any来确定是否有任何结果是True
第二个列表理解构建在第一个列表理解
[any([keyword in string for string in list2]) for keyword in list1]
的基础上,并检查所有关键字在list2
的所有字符串中是否最少出现。我们使用all
检查所有结果是否都是True
正如@Selcuk所提到的,您可以使用generator expressions更有效地执行此操作:语法非常接近列表理解:
相关问题 更多 >
编程相关推荐