Python将字符串添加到字典键

有没有办法在不创建新字典的情况下将字符串添加到字典中的所有键?我尝试了几种方法,但出现以下错误:

    for key in result:
RuntimeError: dictionary keys changed during iteration

我的代码:

def get_temps_servers():
    result = dict(re.findall(r"^(.*?) {2,}.*?(d+C|d+Watts)", text, flags=re.M))
    name = "Test"
    for key in result:
        x = f"{name} {key}"
        result[x] = result[key]
        del result[key]
    print(result)
    return result

这是我的原始字典的样子:

result = {'CPU1 Temp': '35C', 'CPU2 Temp': '39C', 'System Board Inlet Temp': '18C', 'System Board Exhaust Temp': '29C', 'System Board Pwr Consumption': '130Watts'}

如果我创建一个从原始字典复制的新字典,效果很好,如下所示:

def get_temps_servers():
    result = dict(re.findall(r"^(.*?) {2,}.*?(d+C|d+Watts)", text, flags=re.M))
    name = "Test"
    res = {f"{name} {key}": val for key, val in result.items()}
    print(res)
    return res

这是结果:

res = {'Test CPU1 Temp': '35C', 'Test CPU2 Temp': '39C', 'Test System Board Inlet Temp': '18C', 'Test System Board Exhaust Temp': '29C', 'Test System Board Pwr Consumption': '130Watts'}

有没有办法在不创建新字典的情况下获得所需的结果?

回答

这是可能的,但一团糟。Mad Physicist 给出的答案是有效的 - 但存在边缘情况,您需要制作字典键的列表副本才能使其工作。

使用字典理解要容易得多,这只是一行。

name = 'Test'
result = {f"{name} {key}" : value for key, value in  result.items()}


以上是Python将字符串添加到字典键的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>