轻松找到列表中重复的项目

时间:2014-11-30 12:12:17

标签: python list loops

所以我有像

这样的清单
 l = [1,2,3,4,4]

如果我做了一套明确的话,我会得到

([1,2,3,4])

我需要一种方法来查找列表中重复的项目并弹出,我不想使用循环。 如果有一个简单的方法吗? 我使用的是python 2.7

1 个答案:

答案 0 :(得分:3)

您必须显式或隐式地迭代列表。使用标准库的一种方法是collections.Counter

In [1]: from collections import Counter

In [2]: l = [1,2,3,4,4]

In [3]: Counter(l).most_common(1)[0][0]
Out[3]: 4

Counter对象是一个字典,其中一些元素可以作为键重复,它们各自的计数值为:

In [4]: Counter(l)
Out[4]: Counter({4: 2, 1: 1, 2: 1, 3: 1})

most_common()方法返回计数最高的项目列表:

In [5]: Counter(l).most_common()
Out[5]: [(4, 2), (1, 1), (2, 1), (3, 1)]

可选参数限制返回列表的长度:

In [6]: Counter(l).most_common(1)
Out[6]: [(4, 2)]