在字典的开头添加新的键值对。

问题描述 投票:1回答:2

我有一份字典清单。现在,在每本字典中, 我想在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}]

请提出解决方法

python python-3.x dictionary key-value
2个回答
1
投票

在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'}]

1
投票

简单的方法是先创建一个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.

© www.soinside.com 2019 - 2024. All rights reserved.