Bjö*_*lex 17 python iteration set
如果我有两个相同的集合,意思是a == b给我True,他们会有相同的迭代顺序吗?我试了一下,它有效:
>>> foo = set("abc")
>>> bar = set("abc")
>>> zip(foo, bar)
[('a', 'a'), ('c', 'c'), ('b', 'b')]
Run Code Online (Sandbox Code Playgroud)
我的问题是,我很幸运,还是保证这种行为?
Jas*_*rff 21
这是不是只是他们师出同一个巧合:实现恰好是确定性的,因此创建同一组两次产生相同的排序.但Python并不能保证这一点.
如果以两种不同的方式创建相同的集合:
n = set("abc")
print n
m = set("kabc")
m.remove("k")
print m
Run Code Online (Sandbox Code Playgroud)
...你可以得到不同的订购:
set(['a', 'c', 'b'])
set(['a', 'b', 'c'])
Run Code Online (Sandbox Code Playgroud)