如何替换dict python for循环中的键

use*_*234 1 python dictionary python-3.x

d={"given_age":"30","given_weight":"160","given_height":6}
Run Code Online (Sandbox Code Playgroud)

想要"given_"从每个键中删除,

for key,value in d.items():
      new_key=re.sub(r'given_','',key)
      if new_key!=key:
            d[new_key]=d.pop(key)
Run Code Online (Sandbox Code Playgroud)

低于错误,我的目的是仅更改密钥,为什么它会抱怨?

RuntimeError: dictionary keys changed during iteration
Run Code Online (Sandbox Code Playgroud)

hev*_*ev1 5

迭代集合时最好不要修改集合。在这里使用字典理解代替。

res = {re.sub('given_','',k) : v for k, v in d.items()}
Run Code Online (Sandbox Code Playgroud)