在Python2.7中,使用for循环迭代的顺序

2024-06-17 08:44:25 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用for循环时,我有一个关于列表中迭代顺序的问题。 我正在尝试遍历一个成对的列表,并对它们进行一些操作。例如,考虑以下代码:

for j in my EdgeList:    #Edgelist= [(4,5),(5,6)]
    mylist.append(j)

但是,我认为当我使用这个代码时,j的值将是第一个循环中的第一对(4,5),然后它将是第二个循环中的第二对(5,6)。但是,当我逐行调试程序时,我注意到有时它需要最后一对而不是第一对,在另一次调试运行中,它首先需要第一对。我想知道这对python来说是否正常。你知道吗


Tags: 代码in列表for顺序myappend调试程序
1条回答
网友
1楼 · 发布于 2024-06-17 08:44:25

如果EdgeList是一个列表,那么迭代总是从第一个索引开始,一直到最后一个索引。这两个结果应该相同:

>>> i = 0
>>> l = [1,2,3,4,5]
# Don't use a while loop like this… please.
>>> while i < len(l):
...    print(l[i])
...    i+= 1
# outputs 1 2 3 4 5 separated by newlines
>>> for item in l:
...    print(item)
# outputs 1 2 3 4 5 separated by newlines

然而,有时EdgeList实际上并不是一个列表。^例如,{}不保证顺序,字典的键也不保证顺序。这意味着{'f':1,'g':2}.keys()没有返回顺序为1, 2的序列

相关问题 更多 >