我总是让我的字典混乱数据,我在这里做错了什么?
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'....}我怎么能保持它们的顺序就像我在第一时间写它们一样? 使用键:值格式
答案 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一样。