如何在任何(可能不是全部)列表中获取重复值

时间:2017-01-18 20:39:41

标签: python python-2.7 nested-lists

我有一个数据集:

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可以做到这一点?

1 个答案:

答案 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']