Python:迭代元组时是否保留顺序?
在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)) 这是
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:您的链接很好,但实际上并没有记录迭代行为。出于这个原因,我自己没有添加链接。