
尝试这个 :
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']对于每个元组
t中
a,排序并转换回一个元组。
>>> 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')]欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)