不能';t在python列表中重命名字段(键、值结构)

不能';t在python列表中重命名字段(键、值结构),python,list,python-3.x,dictionary,Python,List,Python 3.x,Dictionary,我有下面的列表和嵌套列表(排序键、值) 我正在尝试用“wid”替换“name”,用“wrt”替换“value”,如何在同一列表中执行此操作 我的输出应该是 inp1=[{'id': 0, 'wid': 98, 'wrt': 9}, {'id': 1, 'wid': 66, 'wrt': 8}, {'id': 2, 'wid': 29, 'wrt': 5}, {'id': 3, 'wid': 99, 'wrt': 3}, {'id': 4, 'wid': 15, 'wrt': 9}]

我有下面的列表和嵌套列表(排序键、值)

我正在尝试用“wid”替换“name”,用“wrt”替换“value”,如何在同一列表中执行此操作

我的输出应该是

inp1=[{'id': 0, 'wid': 98, 'wrt': 9}, {'id': 1, 'wid': 66, 'wrt': 8}, {'id': 2, 'wid': 29, 'wrt': 5}, {'id': 3, 'wid': 99, 'wrt': 3}, {'id': 4, 'wid': 15, 'wrt': 9}]     
我在下面尝试过,但它不起作用,因为列表不能用字符串而只能用整数编制索引

    inp1['name'] = inp1['wid']
    inp1['value'] = inp1['wrt']

我尝试过是否可以找到任何示例,但大多数情况下,我只找到dictionary的示例,而不是list的示例。

您需要迭代每个项目,删除旧条目(这很方便-它删除一个条目并返回值)并分配给新的键:

>>> inp1 = [
...     {'id': 0, 'name': 98, 'value': 9},
...     {'id': 1, 'name': 66, 'value': 8},
...     {'id': 2, 'name': 29, 'value': 5},
...     {'id': 3, 'name': 99, 'value': 3},
...     {'id': 4, 'name': 15, 'value': 9}
... ]
>>> 
>>> for d in inp1:
...     d['wid'] = d.pop('name')
...     d['wrt'] = d.pop('value')
... 
>>> inp1
[{'wid': 98, 'id': 0, 'wrt': 9},
 {'wid': 66, 'id': 1, 'wrt': 8},
 {'wid': 29, 'id': 2, 'wrt': 5},
 {'wid': 99, 'id': 3, 'wrt': 3},
 {'wid': 15, 'id': 4, 'wrt': 9}]
输出:

[{'wrt': 9, 'wid': 98, 'id': 0}, {'wrt': 8, 'wid': 66, 'id': 1}, {'wrt': 5, 'wid': 29, 'id': 2}, {'wrt': 3, 'wid': 99, 'id': 3}, {'wrt': 9, 'wid': 15, 'id': 4}]

非常感谢你的帮助!
def f(item):
    if(item.has_key('name') and not item.has_key('wid')):
        item['wid']=item.pop('name')
    if(item.has_key('value') and not item.has_key('wrt')):
        item['wrt']=item.pop('value')
map(f,inp1)
[{'wrt': 9, 'wid': 98, 'id': 0}, {'wrt': 8, 'wid': 66, 'id': 1}, {'wrt': 5, 'wid': 29, 'id': 2}, {'wrt': 3, 'wid': 99, 'id': 3}, {'wrt': 9, 'wid': 15, 'id': 4}]