在 Python 中重命名字典键
问题是,可以在不重新分配其值或迭代字典本身的情况下重命名字典键吗?
常规词典:
对于常规词典,可以使用以下代码完成重命名:
<code class="python">mydict[k_new] = mydict.pop(k_old)</code>
在此代码中,除非 k_new 已经存在,否则项目将移至字典末尾,在这种情况下,其值将被覆盖。
有序字典 (Python 3.7 ):
对于 OrderedDict ,需要保持顺序。重命名键的最简单方法是使用所需的键名称创建一个新字典:
<code class="python">{k_new if k == k_old else k:v for k, v in od.items()}</code>
有序字典(通用):
一般来说,修改密钥本身并不实用,因为密钥是不可变的并且无法修改。因此,解决方案是使用生成器表达式创建一个具有所需键名称的新字典:
<code class="python">OrderedDict((k_new if k == k_old else k, v) for k, v in od.items())</code>
以上是如何在Python中重命名字典键而不重新分配值或迭代?的详细内容。更多信息请关注PHP中文网其他相关文章!