Python3:从另一个列表中检查字符串的多个匹配项

Python3:从另一个列表中检查字符串的多个匹配项,python,python-3.x,Python,Python 3.x,我正在尝试编写一个函数,该函数接受一个字符串,并检查其中是否有来自单独列表的多个匹配项 假设列表是: fruits = ['Apple', 'Orange', 'Pineapple', 'Durian', 'Lychee'] 输入字符串为: "Apple, Orange" 如果列表中的两个或更多项在输入字符串中,我希望它返回True 因此: 将返回真值。但是: 将返回False 我只是不太确定如何迭代输入字符串。非常感谢您的帮助 如果您还想计算重复次数,即输入字符串“apple,apple”

我正在尝试编写一个函数,该函数接受一个字符串,并检查其中是否有来自单独列表的多个匹配项

假设列表是:

fruits = ['Apple', 'Orange', 'Pineapple', 'Durian', 'Lychee']
输入字符串为:

"Apple, Orange"
如果列表中的两个或更多项在输入字符串中,我希望它返回True

因此:

将返回真值。但是:

将返回False


我只是不太确定如何迭代输入字符串。非常感谢您的帮助

如果您还想计算重复次数,即输入字符串“apple,apple”也将返回True,那么下面的一行应该可以完成这项工作

sum(f in fruits for f in fruit_str.split(', ')) > 1
如果还希望检查唯一性,则可以预处理输入字符串并删除重复项,然后再检查它们是否存在于结果列表中

sum(f in fruits for f in set(fruit_str.split(', '))) > 1

您可以在输入字符串上调用.split,该字符串将为您提供一个列表,然后按照以下步骤操作.sum1代表输入字符串中的x\u str.split',“if x in fruits>=2len[a代表输入字符串中的a',“if a in fruits]>1Brilliant,谢谢!我想我知道该怎么办了@tyteen4a03如果添加了列表中未包含的其他水果,则链接页面上的函数返回false。因此,葡萄、苹果、橙色返回false。只要原始列表中有两个或多个,我如何使其返回True?您还可以使用交集运算符&,它应该比循环更有效。lensetfruit_str.split','&setfruits>=2@Hå肯利德:这是另一种方法,但我怀疑&或者交叉口比环路快。这不需要一个循环吗?在底层C实现中,可能有一个循环。但查找是固定时间的,因为set是作为哈希映射实现的。
sum(f in fruits for f in fruit_str.split(', ')) > 1
sum(f in fruits for f in set(fruit_str.split(', '))) > 1