是否可以重命名/更改字典的所有键?例如,让我们看一下下面的字典:
a_dict = {'a_var1': 0.05,
'a_var2': 4.0,
'a_var3': 100.0,
'a_var4': 0.3}
我想删除键中的所有 a_
,所以我最终得到了
a_dict = {'var1': 0.05,
'var2': 4.0,
'var3': 100.0,
'var4': 0.3}
最佳答案
如果你想改变现有的字典,而不是创建一个新的,你可以循环键,弹出
旧的,然后插入新的、修改过的键和旧的值。
>>> for k in list(a_dict):
... a_dict[k[2:]] = a_dict.pop(k)
...
>>> a_dict
{'var2': 4.0, 'var1': 0.05, 'var3': 100.0, 'var4': 0.3}
(迭代 list(a_dict)
将防止由于并发修改而导致的错误。)
严格来说,这也不会改变现有的 key ,而是插入新的 key ,因为它必须根据新的哈希码重新插入它们。但它确实改变了整个词典。
如评论中所述,在循环中更新字典中的键实际上可能比字典理解慢。如果这是一个问题,您还可以使用字典理解创建一个新字典,然后清除
现有字典并使用新值更新
它。
>>> b_dict = {k[2:]: a_dict[k] for k in a_dict}
>>> a_dict.clear()
>>> a_dict.update(b_dict)
关于python - 改变字典的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49692917/