是否可以重命名/更改dict的所有键例如,让我们看看下面的字典:

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}

最佳答案

如果您想更改现有的DICT,而不是创建一个新的DICT,可以循环键,pop旧的,并用旧的值插入新的、修改的密钥。

>>> 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}

(迭代alist(a_dict)将防止并发修改导致的错误。)
严格地说,这也不会改变现有的密钥,而是插入新的密钥,因为它必须根据它们的新哈希代码重新插入它们。但它确实改变了整个词典。
如注释中所述,在循环中更新dict中的键实际上可能比dict理解慢如果这是一个问题,您也可以使用DICT理解创建一个新的DICT,然后使用现有的DIST和新的值。
>>> b_dict = {k[2:]: a_dict[k] for k in a_dict}
>>> a_dict.clear()
>>> a_dict.update(b_dict)

10-06 02:02