重命名字典键

问题:

有没有办法重命名字典键,而不必将其值重新分配到新名称并删除旧的名称键;并且没有迭代通过dict键/值?
 

如果是OrderedDict,请执行相同操作,同时保持该键的位置。

回答:

对于常规的字典,您可以使用:

mydict[new_key] = mydict.pop(old_key)

对于一个OrderedDict,我认为你必须用一个理解来构建一个全新的。

>>> 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键通常是immutable对象,如数字,字符串或元组。而不是尝试修改密钥,重新分配值到一个新的密钥和删除旧密钥是如何在python中实现“重命名”。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Rename a dictionary key

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 1 = 3