【发布时间】:2013-05-04 17:34:26
【问题描述】:
有没有办法重命名字典键,而无需将其值重新分配给新名称并删除旧名称键;并且不遍历dict键/值?
在 OrderedDict 的情况下,执行相同操作,同时保持该键的位置。
【问题讨论】:
-
“不将其值重新分配给新名称并删除旧名称键”到底是什么意思?我看到它的方式是重命名键的定义,下面的所有答案都重新分配值并删除旧键名。你还没有接受答案,所以也许这些还没有完成你想要的?
-
您确实需要指定版本号。 As of Python 3.7, the language spec now guarantees that dicts follow insertion order。这也使得 OrderedDict 基本上已经过时(除非 a)您想要也向后移植到 2.x 或 3.6 的代码,或者 b)您关心Will OrderedDict become redundant in Python 3.7? 中列出的问题)。回到 3.6,字典插入顺序由 CPython 实现(但不是语言规范)保证。
-
@smci 在 Python 3.7 中,dicts 遵循插入顺序,但与
OrderedDict仍然不同。 dicts 在比较它们是否相等时会忽略顺序,而OrderedDict在比较时会考虑顺序。我知道您链接到可以解释它的内容,但我认为您的评论可能会误导那些可能没有阅读该链接的人。 -
@smci 我不同意你的观点,即
dict和OrderedDict之间的差异可以被掩盖,OrderedDict现在已经过时了。我认为辩论这个观点也是这个问题的主题。你链接到的问题是一个更好的地方来谈论它。有趣的是,关于您链接到的问题的唯一赞成答案同意差异很重要并且OrderedDict并没有过时。如果您有不同的答案,请在此处发布并让社区投票。 stackoverflow.com/q/50872498/247696 -
这能回答你的问题吗? Change the name of a key in dictionary
标签: python