我有一个数据集:
data.append(['a', 'b', 'c'], ['a', 'x', 'y', z'], ['a', 'x', 'e', 'f'], ['a'])
我搜索了SO并找到了使用intersection_update()
在所有列表中返回重复项的方法(因此,在此示例中为'a'
),但实际上我想从 any <返回重复项/ em>列表,即:
retVal = ['a', 'x']
由于'a'
和'x'
在所有列表中至少重复一次。是否有内置的Python 2.7可以做到这一点?
答案 0 :(得分:3)
使用Counter
确定每个项目的编号,并chain.from_iterable
将项目从子列表传递到Counter
。
from itertools import chain
from collections import Counter
data=[['a', 'b', 'c'], ['a', 'x', 'y', 'z'], ['a', 'x', 'e', 'f'], ['a']]
c = Counter(chain.from_iterable(data))
retVal = [k for k, count in c.items() if count >= 2]
print(retVal)
#['x', 'a']