-
红颜莎娜
看起来你需要。a = [1,4,5]b = [2,1,4,1,5,6,3,2]print(sum(b.count(i) for i in a))输出:4
-
守着一只汪
您可以使用集合中的计数器:from collections import Counterc = Counter(b)sum(c[i] for i in a)输出:4
-
回首忆惘然
你可以这样做,在每个列表上只迭代一次:from collections import Countera = [1,4,5]b = [2,1,4,1,5,6,3,2]counter = Counter(b)res = sum(counter[value] for value in a)print(res)# 4Counter 只会在 上b迭代一次,然后我们迭代一次a以对相关计数求和,保持复杂度为 O(len(a) + len(b))。sum(b.count(val) for val in a)但是,像 的方法将是 O(len(a) * len(b)),因为count必须b为 的每个项目再次迭代a。