Python:迭代元组时是否保留了顺序?

MrP*_*Pat 1 python loops tuples

在Python中,如果我运行代码:

T=('A','B','C','D')
D={}
i=0
for item in T:
    D[i]=item
    i=i+1
Run Code Online (Sandbox Code Playgroud)

我可以确定D将被组织为:

D = {0:'A', 1:'B', 2:'C', 3:'D'}
Run Code Online (Sandbox Code Playgroud)

我知道元组的顺序不能改变,因为它们是不可变的,但我保证它总是按顺序迭代吗?

Mar*_*ers 14

是的,元组是有序的,迭代遵循该顺序.保证™.

您可以D在一个表达式中生成enumerate()以生成索引:

D = dict(enumerate(T))
Run Code Online (Sandbox Code Playgroud)

那是因为enumerate()生成(index, value)元组,并dict()接受一系列(key, value)元组来生成字典:

>>> T = ('A', 'B', 'C', 'D')
>>> dict(enumerate(T))
{0: 'A', 1: 'B', 2: 'C', 3: 'D'}
Run Code Online (Sandbox Code Playgroud)