假设我的代码中有以下列表:
l1 = [1,2,3,4,5]
l2 = [2,3,5,7,9]
l3 = [4,9,11,12,13]
l4 = [1,2,5,7,8]
l5 = [1,3,4,5,9]
我想要输出,使其包含给定5个列表中3个中常见的元素,在这种情况下:
op = [1,2,3,4,5,9]
我可以得到任何帮助吗?感谢。
答案 0 :(得分:2)
m = {}
for l in [l1, l2, l3, l4, l5]:
for x in l:
try:
m[x] += 1
except KeyError:
m[x] = 1
op = []
for x in m:
if m[x] >= 3:
op.append(x)
答案 1 :(得分:2)
这可以吗?
>>> l1 = [1,2,3,4,5]
>>> l2 = [2,3,5,7,9]
>>> l3 = [4,9,11,12,13]
>>> l4 = [1,2,5,7,8]
>>> l5 = [1,3,4,5,9]
>>> all = l1 + l2 + l3 + l4 + l5
>>> c = [[x,all.count(x)] for x in set(all)]
>>> [x[0] for x in c if x[1] > 2]
[1, 2, 3, 4, 5, 9]
>>>
更新为评论中提到的@TessellatingHeckler:
>>> all = sum([ list(set(x)) for x in (l1,l2,l3,l4,l5) ],[])
>>> c = [[x,all.count(x)] for x in set(all)]
>>> [x[0] for x in c if x[1] > 2]
[1, 2, 3, 4, 5, 9]
>>>