python - Python中集合的迭代顺序

标签 python iteration set

如果我有两个相同的集合,意思是 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/

相关文章:

c++ - 如何在 STL map 内迭代 STL map ?

python - Pandas df.itertuples 在打印时重命名数据框列

c# - .NET 中只允许唯一项的集合?

python - sqlalchemy 教程示例不起作用

java - 解释 Ruby 循环与 Java 的比较

python - 仅使用 getvalueofnode(node.find()) 获取 pandas Dataframe 中的第一行

javascript - 使用集合中获得的值,将包含该集合索引的数组中的值推送到单独的数组中

java - 在 while 条件下添加到集合中的良好做法?

python - 如何禁用(灰色)Tkinter 中的 Checkbutton?

python - 带有 Tesseract 的空字符串