首页  >  文章  >  后端开发  >  如何在Python中重命名字典键而不重新分配或迭代?

如何在Python中重命名字典键而不重新分配或迭代?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-03 07:57:29947浏览

How to Rename a Dictionary Key in Python Without Reassignment or Iteration?

重命名字典键而不重新分配或迭代

操作字典时,可能需要重命名键而不将其值重新分配给新名称或迭代字典。这可以根据所使用的字典类型使用不同的方法来实现。

对于常规 Python 字典,可以使用以下代码片段:

<code class="python">mydict[k_new] = mydict.pop(k_old)</code>

这会移动对应的项目到要重命名到字典末尾的键,除非 k_new 已存在于字典中,在这种情况下,它将用重命名键中的值覆盖现有值。

对于 Python 3.7 OrderedDict 其中需要保留键的顺序,需要创建字典的新实例。例如,要将键 2 重命名为“two”:

<code class="python">d = {0:0, 1:1, 2:2, 3:3}
new_d = {
    "two" if k == 2 else k: v for k, v in d.items()
}</code>

同样的方法可以应用于 OrderedDicts,使用生成器表达式:

<code class="python">new_od = OrderedDict(
    (k_new if k == k_old else k, v) for k, v in od.items()
)</code>

值得注意的是,修改正如问题所示,密钥本身通常是不可行的,因为字典中的密钥通常是可散列且不可变的。

以上是如何在Python中重命名字典键而不重新分配或迭代?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn