我有一份字典清单。现在,在每本字典中, 我想在dict的开头添加一个键值对(key : 'message1')。但是,当我添加它。它被添加到最后.
以下是我的代码
data=[{
'message2': 'asd',
'message3': 'fgw',
'message4': 'fgeq',
'message5': 'gqe',
'message6': 'afgq',
'message7': 'major',
'message8': 'color-regular'
}]
for i in data:
i['message1'] = '111'
以下是我得到的输出,其中 message1 是附加在最后的
[{'message2': 'asd',
'message3': 'fgw',
'message4': 'fgeq',
'message5': 'gqe',
'message6': 'afgq',
'message7': 'major',
'message8': 'color-regular',
'message1': '111'# i want this in the beginning}]
请提出解决方法
在python3.7+(cpython3.6+)中,字典是有序的,所以你可以创建一个新的dict,第一个键是 "message"。
for i, d in enumerate(data):
data[i] = {'message': '111', **d}
data
[{'message': '111',
'message2': 'asd',
'message3': 'fgw',
'message4': 'fgeq',
'message5': 'gqe',
'message6': 'afgq',
'message7': 'major',
'message8': 'color-regular'}]
简单的方法是先创建一个dict,然后用update:
data = {'m1': 'A', 'm2': 'D'}
然后使用 update。
data.update({'m3': 'C', 'm4': 'B'})
结果将是 {'m1': 'A', 'm2': 'D', 'm3': 'C', 'm4': 'B'}
. 假设是python 3.7以上版本的有序dict。另一种方式,你可以使用 collections.OrderedDict
.