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

2024-09-24 22:28:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份字典清单。现在,在每个字典中,我想在字典的开头添加一个键值对(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}]

请提出解决办法


Tags: data字典末尾asdmessage4message1message3message2
2条回答

要做到这一点,最简单的方法是先创建一个dict:

data = {'m1': 'A', 'm2': 'D'}

然后使用更新:

data.update({'m3': 'C', 'm4': 'B'})

结果将是{'m1': 'A', 'm2': 'D', 'm3': 'C', 'm4': 'B'}。假设python版本3.7+用于有序dict。另一方面,您可以使用collections.OrderedDict

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

相关问题 更多 >