Python:如果它们完全相同,包括项目顺序,则从列表中删除重复的元组

581*_*813 17 python tuples list duplicates python-itertools

我知道在Stack Overflow上已经多次询问过与此类似的问题,但是我需要从列表中删除重复的元组,但不仅仅是它们的元素匹配,它们的元素必须处于相同的顺序.换言之,(4,3,5)(3,4,5)将同时出现在输出中,而如果有两个(3,3,5)(3,3,5)中,只有一个将是在输出中.

具体来说,我的代码是:

import itertools

x = [1,1,1,2,2,2,3,3,3,4,4,5]
y = []

for x in itertools.combinations(x,3):
    y.append(x)
print(y)
Run Code Online (Sandbox Code Playgroud)

其中输出相当冗长.例如,在输出中,应该有(1,2,1)(1,1,2).但应该只有一个(1,2,2).

iCo*_*dez 32

set 将照顾:

>>> a = [(1,2,2), (2,2,1), (1,2,2), (4,3,5), (3,3,5), (3,3,5), (3,4,5)]
>>> set(a)
set([(1, 2, 2), (2, 2, 1), (3, 4, 5), (3, 3, 5), (4, 3, 5)])
>>> list(set(a))
[(1, 2, 2), (2, 2, 1), (3, 4, 5), (3, 3, 5), (4, 3, 5)]
>>>
Run Code Online (Sandbox Code Playgroud)

set将仅删除完全相同的重复项.