python怎么设置项目排序(订购)

时间:2016-05-02 11:47:14

标签: python-3.x

我对如何安排设置项目感到困惑,例如:

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'}

它保持变化所以它有点随机但对于数字它是常数

1 个答案:

答案 0 :(得分:0)

有几点要说:

  1. 第四行存在不一致 - s1的定义应为s1 = {2,1,3000,6} - 与您的控制台输出相匹配;
  2. 我不知道你的意思是'跑步'但是,当打开Python控制台的一个实例(版本3.4.3对我来说)时,当我输入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'});
  3. 在关闭并重新打开Python控制台后执行与上述完全相同的输入时,会出现以下输出:{1, 2, 3, 6}{'3', '2', '1', '4'}{'b', 'c', 'd', 'a'}。所以每次打开一个新的Python控制台时它似乎都会改变。我知道这些集合是独特对象的无序集合(同一个对象不能在同一个集合中重复两次 - 输出后会自动删除),但我不知道背后的原因。< / LI>

    关于您的问题我还要说些什么 - 如果您想了解更多信息,我建议您在set ordering in python 3或任何其他搜索上进行谷歌搜索,以帮助您找到更多信息。

    修改

    根据“学习Python第5版”一书,集合的定义是:

      

    一个无序的唯一和不可变对象集合,支持与数学集理论相对应的操作。

    可能是Python的创建者希望集合对数学值进行排序,以便在数学领域中更轻松地应用集合。