如何查找列表中的这个python列表是否包含重复项?

时间:2015-10-24 07:16:29

标签: python-2.7

我有以下python列表: -

a=[['t1', ['a', 'c']], ['t2', ['b']], ['t2', ['b']]]

现在它包含重复列表['t2', ['b']] 2次 如果列表包含重复项,我想返回true。 谁能帮助我怎么做?

我尝试使用set功能,但它不能在这里工作!

2 个答案:

答案 0 :(得分:0)

如果您的目标是删除重复项,this answer可能会有所帮助:

has_duplicates = lambda l: True in [(i in l[:n]) for n, i in enumerate(l)]

你可以这样重写:

has_duplicates(a)   # True

您可以这样称呼它:

{{1}}

答案 1 :(得分:0)

如果您可以自由地将列表a表示为元组/记录列表:

b = [(item[0], tuple(item[1])) for item in a]

(或者,首先):

a = [('t1', ('a', 'c')), ('t2', ('b')), ('t2', ('b'))]

然后项目变得可以清除,您可以使用collections.Counter

from collections import Counter
c = Counter(b)

所以你可以找到像:

这样的重复项
duplicated_items = [key for key, count in c.iteritems() if count > 1]

(或者你可以使用set):

has_duplicates = len(set(b)) < len(b)