如何在声明字典时保留键的顺序

时间:2016-01-15 18:25:54

标签: python dictionary ordereddictionary

我的目标是在字典声明中保留键的顺序。我正在使用collections.OrderedDict但是当我跑步时:

>>> modelConfigBase = OrderedDict({'FC':'*','EC':'*','MP':'*','LP':'*','ST':'*','SC':'*'})

订单更改:

>>> modelConfigBase
OrderedDict([('EC', '*'), ('ST', '*'), ('FC', '*'), ('MP', '*'), ('LP', '*'), ('SC', '*')])

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您传递给OrderedDict的字典是无序的。您需要传递一个有序的可迭代项目。 。

e.g。

modelConfigBase = OrderedDict([
    ('FC', '*'),
    ('EC', '*'),
    ('MP', '*'),
    ('LP', '*'),
    ('ST', '*'),
    ('SC', '*')])

请注意,在这种情况下(由于所有值都相同),看起来您可以使用更简单的方法:

modelConfigBase = OrderedDict.fromkeys(['FC', 'EC', 'MP', 'LP', 'ST', 'SC'], '*')

答案 1 :(得分:0)

基于第三反应,解决方案如下:

modelConfigBase = OrderedDict([('EC', '*'), ('ST', '*'), ('FC', '*'), ('MP', '*'), ('LP', '*'), ('SC', '*')])