如果我有两个相同的集合,意思是 a == b
给了我 True
,它们会有相同的迭代顺序吗?我试过了,效果很好:
>>> foo = set("abc")
>>> bar = set("abc")
>>> zip(foo, bar)
[('a', 'a'), ('c', 'c'), ('b', 'b')]
我的问题是,我是幸运的,还是这种行为有保证?
最佳答案
只是它们的结果相同并非巧合:实现恰好是确定性的,因此两次创建相同的集合会产生相同的顺序。但 Python 不保证这一点。
如果您以两种不同的方式创建相同的集合:
n = set("abc")
print n
m = set("kabc")
m.remove("k")
print m
...你可以得到不同的排序:
set(['a', 'c', 'b'])
set(['a', 'b', 'c'])
关于python - Python中集合的迭代顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3406341/