字典排序不正确键:值

时间:2015-09-19 20:44:00

标签: python

我总是让我的字典混乱数据,我在这里做错了什么?

data={
'1': '1',
'2': '2',
'3': '3',
'4': '4',
'5': '5',
'6': '6',
'7': '7',
'8': '8',
'9': '9',
'10': '10',
'11': '11'
}
print data

结果:

{'11': '11', '10': '10', '1': '1', '3': '3', '2': '2', '5': '5', '4': '4', '7':'7', '6': '6', '9': '9', '8': '8'}

我需要做些什么才能以正确的顺序获得它?

PS:该列表只是一个例子,我的列表类型更复杂: data = {'str1':'str2','str3':'str4','str5':'str6'....}我怎么能保持它们的顺序就像我在第一时间写它们一样? 使用键:值格式

1 个答案:

答案 0 :(得分:0)

使用OrderedDict保存项目的顺序与您在源文件中编写的顺序相同(或插入它们):

from collections import OrderedDict

data = OrderedDict([
    ('1', '1'),
    ('2', '2'),
    ('3', '3'),
    ('4', '4'),
    ('5', '5'),
    ('6', '6'),
    ('7', '7'),
    ('8', '8'),
    ('9', '9'),
    ('10', '10'),
    ('11', '11'),
  ])
print data

输出:

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

虽然在这种情况下输出看起来不像普通的dict,但当你迭代它或索引它时,“data”变量仍然会像普通的dict一样。