Python是否保证列表迭代器的遍历顺序?

Python是否保证列表迭代器的遍历顺序?,python,list,iterator,listiterator,Python,List,Iterator,Listiterator,正如我在Python2.7中看到的,列表的迭代器以递增的索引顺序遍历列表。我想知道这个顺序是由Python 2/3保证的,还是明确定义为列表迭代器的行为 换句话说,如果我想以递增的索引顺序遍历列表(并且我要求它是这样的顺序),并简单地使用迭代器来实现这一目的,那么在Python的某个更高版本中,是否有可能改变行为?对于列表,但对于字典或集合,迭代顺序是有保证的。这对Python2和Python3都适用,而且不太可能改变。@KronoS所以你的答案是,它不能保证列表上迭代器遍历的顺序,对吗?答案是

正如我在Python2.7中看到的,列表的迭代器以递增的索引顺序遍历列表。我想知道这个顺序是由Python 2/3保证的,还是明确定义为列表迭代器的行为


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

对于列表,但对于字典或集合,迭代顺序是有保证的。这对Python2和Python3都适用,而且不太可能改变。

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