python-3.x 在字典开头添加新的键值对

x9ybnkn6  于 2022-12-01  发布在  Python
关注(0)|答案(3)|浏览(159)

我有一个字典列表。现在,在每个字典中,**我想添加一个键值对(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}]

请建议解决方法

wa7juj8i

wa7juj8i1#

简单的方法是先创建一个敕令:

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

然后使用更新:

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

结果将是{'m1': 'A', 'm2': 'D', 'm3': 'C', 'm4': 'B'}。假设是python版本3.7以上的有序指令。在另一种情况下,您可以使用collections.OrderedDict

lyfkaqu1

lyfkaqu12#

在python3.7+(cpython3.6+)上,字典是有序的,因此可以创建一个以“message”为第一个键的新dict:

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

ilmyapht3#

您可以这样做:

dict1 = {
    '1': 'a',
    '2': 'b'
}

items = list(dict1.items())
items.insert(0, ('0', 'z'))
dict1 = dict(items)

print(dict1)
# {'0': 'z', '1': 'a', '2': 'b'}

相关问题