重命名字典键

2024-03-29 10:08:57 发布

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


Tags: python
3条回答

对于常规dict,您可以使用:

mydict[new_key] = mydict.pop(old_key)

对于一个有序的信息技术,我认为你必须建立一个全新的使用理解。

>>> OrderedDict(zip('123', 'abc'))
OrderedDict([('1', 'a'), ('2', 'b'), ('3', 'c')])
>>> oldkey, newkey = '2', 'potato'
>>> OrderedDict((newkey if k == oldkey else k, v) for k, v in _.viewitems())
OrderedDict([('1', 'a'), ('potato', 'b'), ('3', 'c')])

修改键本身是不实际的,因为dict键通常是不可变的对象,如数字、字符串或元组。在python中,您可以实现“重命名”,而不是试图修改键,而是将值重新分配给新键并删除旧键。

一行中的最佳方法:

>>> d = {'test':[0,1,2]}
>>> d['test2'] = d.pop('test')
>>> d
{'test2': [0, 1, 2]}

使用对newkey!=oldkey的检查,您可以这样做:

if newkey!=oldkey:  
    dictionary[newkey] = dictionary[oldkey]
    del dictionary[oldkey]

相关问题 更多 >