Python 3.x 为python字典列表中的特定键值对分配新键

Python 3.x 为python字典列表中的特定键值对分配新键,python-3.x,list,dictionary,Python 3.x,List,Dictionary,我有以下python字典列表: 我的期望输出: 我能够将x列表中的一个新键分配给特定的键值对,但是,我将其附加到当前列表中,并获得以下输出: x=[{'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5', 'f': '6', 'AA':{'a':'1','b':'2','c':'3','d':'4','e':'5','f':'6'}, {'g':'7'}] 最后,我不得不从a到f取下钥匙 目前的工作方案: 我

我有以下python字典列表:

我的期望输出:

我能够将x列表中的一个新键分配给特定的键值对,但是,我将其附加到当前列表中,并获得以下输出:

x=[{'a': '1',
   'b': '2',
   'c': '3',
   'd': '4',
   'e': '5',
   'f': '6',
   'AA':{'a':'1','b':'2','c':'3','d':'4','e':'5','f':'6'},
   {'g':'7'}]
最后,我不得不从
a
f
取下钥匙

目前的工作方案:


我只需要动态地为相应的键值对分配一个新键,而不需要在列表中循环两次。

为什么不创建一个新字典呢?它更安全,因为它不操纵可变的dict数据,并且可能会导致使用此dict的其他方法出现错误行为

尝试以下方法:

x=[{'a': '1',
'b': '2',
'c': '3',
'd': '4',
'e': '5',
'f': '6',
'g': '7'}]

new_dict = {'AA': {k: v for k, v in x[0].items() if k != 'g'}, 'g': x[0]['g']}
x=[{'a': '1',
   'b': '2',
   'c': '3',
   'd': '4',
   'e': '5',
   'f': '6',
   'AA':{'a':'1','b':'2','c':'3','d':'4','e':'5','f':'6'},
   {'g':'7'}]
for k in x:
     k['AA'] = {u: k[u] for u in sorted(k.keys())[:6]}

rem_list = ['a', 'b', 'c', 'd', 'e', 'f']
for k in rem_list:
    for v in x:
        v.pop(k)
x=[{'a': '1',
'b': '2',
'c': '3',
'd': '4',
'e': '5',
'f': '6',
'g': '7'}]

new_dict = {'AA': {k: v for k, v in x[0].items() if k != 'g'}, 'g': x[0]['g']}