我有一个词典列表L
,其中词典具有相同的键集。
我还有另一本词典d
,它的键集与以前的词典相同。
对于键集中的每个key
,d[key]
是可应用于L[i][key]
的功能,即d[key](L[i][key])
。
我想使用L
值中的函数来重置d
中的词典值,即
L[i][key] = d[key](L[i][key])
对于所有key
和所有i
。
我该如何以更pythonic的方式做到这一点?谢谢。
例如。
d = {'a':int, 'b':myfun, 'c':yourfun}
L[1] = {'a':`10`, 'b':5, 'c':1.4}
其中int
是类型转换函数int()
,myfun
是一个可以将整数作为其参数的函数,而yourfun
是另一个可以将一个浮点数作为其参数的函数。
python大神给出的解决方案
您可以使用列表和字典理解来使用正确的值重新生成L
:
L = [{k: d[k](v) for (k, v) in l.iteritems()} for l in L]