我正在尝试通过在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}
答案 0 :(得分:0)
只需阅读python documentation:
Python还包括集合的数据类型。 集合是无序集合,没有重复的元素。基本用途包括成员资格测试和消除重复条目。集合对象还支持诸如并集,交集,差和对称差之类的数学运算。
强调我的想法。
这意味着您将永远无法对集合中的项目进行排序*。
至少,对于“标准”设置,您不能这样做。您最好查找第三方库(默认字典和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])