对于常规字典,您可以使用:
mydict[k_new] = mydict.pop(k_old)
这会将项目移动到字典的末尾,除非k_new
已经存在,在这种情况下它将覆盖原地的值。
对于您还想保留顺序的 Python 3.7+ 字典,最简单的方法是重建一个全新的实例。例如,重命名键2
to 'two'
:
>>> d = {0:0, 1:1, 2:2, 3:3}
>>> {"two" if k == 2 else k:v for k,v in d.items()}
{0: 0, 1: 1, 'two': 2, 3: 3}
对于一个来说也是如此OrderedDict
,您不能使用字典理解语法,但可以使用生成器表达式:
OrderedDict((k_new if k == k_old else k, v) for k, v in od.items())
修改密钥itself正如问题所要求的,是不切实际的,因为密钥是hashable https://docs.python.org/3/glossary.html#term-hashable这通常意味着他们是不可变的 https://docs.python.org/3/glossary.html#term-immutable并且无法修改。