Python:从“元组列表”中生成“元组集”,但不考虑顺序

Python:从“元组列表”中生成“元组集”,但不考虑顺序,第1张

Python:从“元组列表”中生成“元组集”,但不考虑顺序

尝试这个 :

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')]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5655098.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存