gpt4 book ai didi

python - 如何在python中对集合进行排序?

转载 作者:行者123 更新时间:2023-12-01 10:19:28 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Sorting a set of values

(1 个回答)


2年前关闭。




我正在尝试通过向其中添加元素来对 python 中的集合进行排序。我尝试使用 sorted() 方法,但它正在将我的集合转换为列表。我需要对我的元素进行排序并将其打印为一个集合本身。我怎样才能做到这一点?

我尝试使用 sorted() 方法并获得了一个列表。试图将列表放入一个集合中。但是,没有收到要求的结果

a={}
a=set()
a.add(1)
a.add(-1)
a.add(0)
a.add(4)
a.add(-3)
print(a)

预期结果:
{-3, -1, 0, 1, 4}
实际结果:
{0, 1, 4, -3, -1}

最佳答案

你不能

刚读 python documentation :

Python also includes a data type for sets. A set is an unordered collection with no duplicate elements. Basic uses include membership testing and eliminating duplicate entries. Set objects also support mathematical operations like union, intersection, difference, and symmetric difference.



强调我的。

这意味着您将永远无法对集合中的项目进行排序*。

至少,对于“普通”集合,你不能。您应该更好地寻找第三方库(默认字典和 collections.OrderedDict ),因为我认为 python 没有内置有序集,至少在 collections 中没有。 .

*嗯,不是从来没有,我知道早期版本的 python 没有订购字典,现在他们有。但至少在当前版本(python 3.7)中,没有有序集。

无论如何,字典的工作方式与集合类似。在字典中,你不能有两次相同的键,就像在一个集合中你不能有两次相同的项目。因此,如果您使用字典的键并忽略这些键的值,则会出现 collections.OrderedDict可能对你有用。从 Python 3.7 开始,即使是基本词典(您使用 dict() 制作的词典)也可以使用。
>>> a = dict()
>>> a[1] = None
>>> a[-1] = None
>>> a[0] = None
>>> a[4] = None
>>> a[-3] = None
>>> print(a.keys())
dict_keys([1, -1, 0, 4, -3])

关于python - 如何在python中对集合进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55389165/

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