如何在Python中提取列表中的重复元组?

agi*_*ios 4 python tuples list duplicates python-2.7

我正在编写一个程序,我需要找到相同的日期...

我目前将日期存储在不同的日期和月份列表中,然后将zip它们存储到日期列表中......所以日期列表可能如下所示:

[(2,4),(4,18),(10,7)]
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要将重复的元组提取到另一个列表,而不是仅仅用一些set()左右来消除它们.

如果我的日期列表得到了[(2,3),(2,3),(4,8)]我需要(2,3)到一个新的列表.

或者,我可以将日期列表形成为a dictionary然后再将其分成项目,但我问是否有更简单的方法.有什么建议?

wim*_*wim 6

您可以使用计数器执行此任务:

>>> from collections import Counter
>>> L = [(2,3),(2,3),(4,8)]
>>> [k for k,count in Counter(L).items() if count > 1]
[(2, 3)]
Run Code Online (Sandbox Code Playgroud)

如果你想要所有的骰子,而不是每个骰子,那么使用计数和键.

如果您关心原始订购,请执行相同的操作,但使用的是OrderedCounter:

>>> from collections import Counter, OrderedDict
>>> class OrderedCounter(Counter, OrderedDict): 
...     pass
Run Code Online (Sandbox Code Playgroud)