首页 > 解决方案 > 为什么字典元组不尊重构造顺序?

问题描述

因此,我使用以下代码在 python 中构造了一个字典(带有元组):

d = { (x , x + 1) : x for x in range(0 , 10)}
print(d)

我最终打印{(0, 1): 0, (1, 2): 1, (6, 7): 6, (5, 6): 5, (7, 8): 7, (8, 9): 8, (4, 5): 4, (2, 3): 2, (9, 10): 9, (3, 4): 3}

我的问题是:为什么它不尊重特定的顺序,即我用来构建字典的顺序?

标签: pythondictionarytuples

解决方案


如果您的python 版本 < 3.6,您可以使用collections.OrderedDict来保持插入顺序:

from collections import OrderedDict

d = OrderedDict(((x , x + 1), x) for x in range(0 , 10))
d

输出:

OrderedDict([((0, 1), 0),
             ((1, 2), 1),
             ((2, 3), 2),
             ((3, 4), 3),
             ((4, 5), 4),
             ((5, 6), 5),
             ((6, 7), 6),
             ((7, 8), 7),
             ((8, 9), 8),
             ((9, 10), 9)])

推荐阅读