使用函数更改字典键

Ano*_*ity 1 python

假设有一个字典像

d1 = {
    'a b':1,
    'c-d':2,
    'Ef':3
}
Run Code Online (Sandbox Code Playgroud)

我想运行一个根据某些规则重命名所有键的函数,例如小写并将空格和 - 更改为 _。从而得到结果:

d2 = {
    'a_b':1,
    'c_d':2,
    'ef':3
}
Run Code Online (Sandbox Code Playgroud)

这个问题与本网站上有关重命名字典键的其他类似问题之间的区别在于,这里我们事先不知道这些列。所以我们想对所有键运行重命名函数(以​​规范化它们或类似的东西)。

AKX*_*AKX 5

声明这样一个函数,然后使用字典理解(搜索“字典理解”)来循环字典项并调用该转换器。

def transform_key(key):
    return key.lower().replace(" ", "_").replace("-", "_")

d1 = {
    'a b':1,
    'c-d':2,
    'Ef':3
}

d2 = {transform_key(key): value for (key, value) in d1.items()}
print(d2)
Run Code Online (Sandbox Code Playgroud)

输出

{'a_b': 1, 'c_d': 2, 'ef': 3}
Run Code Online (Sandbox Code Playgroud)