我有两个字符串列表。我想比较列表1和列表2中的所有项目,然后计算匹配项。这是我尝试过的:
count = 0
global_fruit = ['apples', 'bananas', 'pears', 'oranges', 'peaches', 'apricots', 'mangoes']
local_fruit = ['bananas', 'apricots', 'oranges']
if any(f in global_fruit for f in local_fruit):
count += 1
print(count)
由于脚本在第二个列表中找到第一个匹配项后立即退出,因此返回计数1。我希望它返回3,因为列表之间有3个匹配项。
有没有办法做到这一点?顺序并不重要。
您可以使用sum
代替any
并立即获得结果:
count = 0
global_fruit = ['apples', 'bananas', 'pears', 'oranges', 'peaches', 'apricots', 'mangoes']
local_fruit = ['bananas', 'apricots', 'oranges']
count = sum(f in global_fruit for f in local_fruit)
print(count)
另外,您可以将列表转换成集合并找到相交的数量:
count = 0
global_fruit = ['apples', 'bananas', 'pears', 'oranges', 'peaches', 'apricots', 'mangoes']
global_fruit = set(global_fruit)
local_fruit = ['bananas', 'apricots', 'oranges']
local_fruit = set(local_fruit)
count = len(global_fruit.intersection(local_fruit))
print(count)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句