Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:迭代元组时是否保留顺序?_Python_Loops_Tuples - Fatal编程技术网

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

Python:迭代元组时是否保留顺序?,python,loops,tuples,Python,Loops,Tuples,在Python中,如果我运行代码: T=('A','B','C','D') D={} i=0 for item in T: D[i]=item i=i+1 我能否确定D的组织形式为: D = {0:'A', 1:'B', 2:'C', 3:'D'} 我知道元组的顺序不能改变,因为它们是不可变的,但我能保证它也总是按顺序进行迭代吗?是的,元组是按顺序进行的,迭代也按顺序进行。放心™. 您可以在一个表达式中生成D,以生成索引: D = dict(enumerate(T)) 这是

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

T=('A','B','C','D')
D={}
i=0
for item in T:
    D[i]=item
    i=i+1
我能否确定D的组织形式为:

D = {0:'A', 1:'B', 2:'C', 3:'D'}

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

是的,元组是按顺序进行的,迭代也按顺序进行。放心™.

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

D = dict(enumerate(T))
这是因为
enumerate()
生成
(索引,值)
元组,
dict()
接受一系列
(键,值)
元组来生成字典:

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

是的,可以保证元组将按该顺序迭代。然而,字典是无序的,因此您不能依赖它们的顺序(尽管
键:值
映射将保证是您显示它的方式)。如果你需要一个保序字典,请使用。现在我看到我可以使用enumerate(T,start)以偏移量开始索引。我正在从嵌入式设备读取内存块,我想将其映射到字典中,字典的键是来自嵌入式设备的内存地址。完美的谢谢。@gabroncancio:您的链接很好,但实际上并没有记录迭代行为。出于这个原因,我自己没有添加链接。