有没有一种方法可以重命名字典键,而无需将其值重新分配给新名称并删除旧名称键;而且没有迭代字典键/值?
对于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密钥通常是不可变的对象,例如数字,字符串或元组。你可以尝试在python中实现“重命名”,而不是尝试修改键,而是将值重新分配给新键并删除旧键。