gpt4 book ai didi

python - 列表列表的独特元素

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:52 34 4
gpt4 key购买 nike

我有一个类似于下面的列表(我已经方便地转换了元组的元组,以便 set 可以获得唯一的元素。

mylist = ((('pen','pineapple'),('apple','pen')),(('pineapple','pen')),(('apple','pen'),('pen','pineapple')))
set(mylist)

>>>
{(('pen', 'pineapple'), ('apple', 'pen')),
('pineapple', 'pen'),
(('apple', 'pen'), ('pen', 'pineapple'))}

但是,元素 ('apple', 'pen'), ('pen', 'pineapple') == ('pen', 'pineapple'), ('apple', 'pen') 就我的应用程序而言。是否有一种快速的 python 方法来获取唯一元素而不考虑元素的顺序。

编辑 1:正如评论中指出的那样:(('pen', 'apple'), ('pen', 'pineapple')) != (('apple', 'pen'), ('pen', 'pineapple'))。即我不想重新排列最里面的元组。但是,重新排列中间层的元组是可以的。

顺便说一句,我希望有一些比使用 sort 然后使用 set 更 pythonic(或更高级)的东西。

最佳答案

制作一组。集合只能包含不可变对象(immutable对象),因此您必须将每个元组转换为 frozenset,然后从中创建一个集合:

In [4]: set(map(frozenset, mylist))
Out[4]:
{frozenset({('apple', 'pen'), ('pen', 'pineapple')}),
frozenset({'pen', 'pineapple'})}

关于python - 列表列表的独特元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44172812/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com