将函数应用于Python dict的所有键

xen*_*ato 6 python python-2.7

我想转换Python dict的所有键.

例如,如果键是整数,我想将每个键更改为原始值乘以100.

实现这一目标的最具性价比的方法是什么?

我现在这样做的方法是将原始密钥存储在a中set并删除这些密钥,用新密钥替换它们 - 这有一个问题,如果我在原始密钥集中有a key=2和a key=200,就会发生冲突,我必须递归处理,直到找到一个没有与原始密钥集冲突的密钥.

bri*_*pck 9

你可以使用dict理解:

>>> d = {1: 'a', 2: 'b', 3: 'c'}
>>> {k*100: v for k, v in d.items()}
{200: 'b', 300: 'c', 100: 'a'}
Run Code Online (Sandbox Code Playgroud)

更换items()iteritems(),如果你正在使用Python 3.


小智 5

我会为此使用字典理解。

result = {your_func(key): value for key, value in your_dict.iteritems()}
Run Code Online (Sandbox Code Playgroud)