【问题标题】:Does Python guarantee the traversal order of a list iterator?Python 是否保证列表迭代器的遍历顺序?
【发布时间】:2015-09-18 23:42:45
【问题描述】:

据我在 Python 2.7 中所见,列表的迭代器以索引递增的顺序遍历列表。我想知道这个顺序是否由 Python 2/3 保证,或者这个顺序是否明确定义为列表迭代器的行为。

换句话说,如果我想以递增索引的顺序遍历列表(并且我要求它是这样的顺序),并为此目的简单地使用迭代器,是否有可能在某些更高版本的Python 的行为会改变吗?

【问题讨论】:

  • @KronoS 所以你的答案是,它保证迭代器遍历列表的顺序,对吧?
  • 答案是肯定的。考虑到它是如何在源代码中实现的,对他们来说改变这样的东西是很疯狂的。字典是另一回事。他们为什么要改变它?
  • 如果改变了,它会破坏数千甚至数百万的 Python 程序。

标签: python list iterator listiterator


【解决方案1】:

保证列表的迭代顺序,但不保证字典或集合。这适用于 python 2 和 3,并且极不可能被更改。

【讨论】:

    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多