考虑一个元组列表:
[(14,1), (10,5), (8,7), (1,14)]
我需要消除(1,14)
&之一(14,1)
。因此,预期结果应为[(14,1),(10,5),(8,7)]
或[(10,5),(8,7),(1,14)]
注意:订单无关紧要。
我知道set()
可以用来消除确切的重复。此外,组合也没有多大帮助,因为所有这些组合总和相同。
答案 0 :(得分:3)
考虑到这种情况,改为使用一组集合是明智的。集合不允许重复,并且指定顺序无关紧要。
如果您无法控制数据的创建,而是必须从当前数据转换为此数据,则可以转换当前数据:
{frozenset(i) for i in dataset}
您必须使用frozenset
,因为set
不是可播放类型。这不比使用tuple
更具限制性。
答案 1 :(得分:1)
对元组进行排序
data = [(14,1), (10,5), (8,7), (1,14)]
set( [ tuple(sorted(i)) for i in data])
输出:
set([(5, 10), (1, 14), (7, 8)])