【发布时间】:2014-03-09 05:24:20
【问题描述】:
我从Python wikibook 开始初步了解python 语言。
对于集合,提到了以下内容:
我们还可以循环移动集合中的每个项目。但是,由于集合是无序的,因此未定义迭代将遵循的顺序。
给出的代码示例是:
s = set("blerg")
for letter in s:
print letter
输出:
r b e l g
当我运行程序时,无论我运行多少次,我都会以相同的顺序得到结果。如果集合是无序的并且迭代顺序未定义,为什么它以相同的顺序返回集合?该命令的依据是什么?
【问题讨论】:
-
存储项目的顺序是无序的,但这将是一致的(至少在 Python 2.x 中)。
-
顺序未定义,但不是随机的。以相同顺序插入的同一组值将始终以相同顺序显示
-
即。文档告诉你:“不要相信事情是按一定的顺序排列的,因为你可能(并且将会)感到惊讶”。如果您需要订购,请使用一些定制的集合(字典有这样的定制)。
标签: python set python-internals