尝试这个 :
a = [('a', 'b'), ('c', 'd'), ('a', 'b'), ('b', 'a')]
b = list(set([ tuple(sorted(t)) for t in a ]))
[('a', 'b'), ('c', 'd')]
如果对元组进行排序,它将成为已排序的列表。
>>> t = ('b', 'a')
>>> sorted(t)
['a', 'b']
>>> b = [ tuple(sorted(t)) for t in a ]
>>> b
[('a', 'b'), ('c', 'd'), ('a', 'b'), ('a', 'b')]
将结果列表转换b
为set:值现在是唯一的。将其转换回列表。
>>> list(set(b))
[('a', 'b'), ('c', 'd')]
等等!
请注意,您可以b
通过使用生成器而不是列表理解来跳过中间列表的创建。
>>> list(set(tuple(sorted(t)) for t in a))
[('a', 'b'), ('c', 'd')]