我对如何安排设置项目感到困惑,例如:
s1 = {2,1,3,6}
print(s1) ===> {1,2,3,6}
s1 = {2,1,30,6}
print(s1) ===> {1,2,6,60}
s1 = {2,1,300,6}
print(s1) ===> {1,2,300,6}
s1 = {2,1,3,6}
print(s1) ===> {3000,1,2,6}
但对于Alphapetic角色,它似乎是随机的例子:
s1 = {'A','B','C','D'}
first Run ====> {'D', 'C', 'B', 'A'}
Second Run ===> {'B', 'A', 'C', 'D'}
Third Run ====> {'C', 'B', 'A', 'D'}
它保持变化所以它有点随机但对于数字它是常数
答案 0 :(得分:0)
有几点要说:
s1
的定义应为s1 = {2,1,3000,6}
- 与您的控制台输出相匹配; s1 = {2,1,6,3}
然后print(s1)
时,控制台会输出{1, 2, 3, 6}
;然而,当我输入s1 = {'1','2','3','6'}
然后print(s1)
时,控制台输出{'2', '4', '3', '1'}
所以我可以从观察中说,对象的这种随机排序似乎影响字符串而不是整数 - 看来这些自动订购。第二个输出也出现在其他对象类型中(输入s2 = {'a','b','c','d'}
然后print(s2)
给了我{'c', 'b', 'd', 'a'}
); {1, 2, 3, 6}
,{'3', '2', '1', '4'}
,{'b', 'c', 'd', 'a'}
。所以每次打开一个新的Python控制台时它似乎都会改变。我知道这些集合是独特对象的无序集合(同一个对象不能在同一个集合中重复两次 - 输出后会自动删除),但我不知道背后的原因。< / LI>
醇>
关于您的问题我还要说些什么 - 如果您想了解更多信息,我建议您在set ordering in python 3
或任何其他搜索上进行谷歌搜索,以帮助您找到更多信息。
修改强>
根据“学习Python第5版”一书,集合的定义是:
一个无序的唯一和不可变对象集合,支持与数学集理论相对应的操作。
可能是Python的创建者希望集合对数学值进行排序,以便在数学领域中更轻松地应用集合。