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

Mary-Kate Olsen
发布: 2024-11-03 07:57:29
原创
947 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板