list1 = [ 3, 4, 7 ]
list2 = [ 5, 2, 3, 5, 3, 4, 4, 9 ]
from collections import Counter
total = 0
c = Counter(list2)
for i in list1:
if c[i]:
total += c[i]
这并没有考虑到如果在第一个列表中有重复项(HT Jon)会发生什么,更优雅的版本是:
counter = Counter(list2)
occurrences = sum(counter[v] for v in set(list1))
你可以在这里使用collections.Counter,所以首先是一个天真而丑陋的实现(我的)。
这并没有考虑到如果在第一个列表中有重复项(HT Jon)会发生什么,更优雅的版本是:
使用列表理解并检查元素是否存在
来自@Jon i.e的更好的一个
输出:
4
您可以使用
count
方法将给定数字的first
列表和add
发生次数迭代到sum
。相关问题 更多 >
编程相关推荐