【发布时间】:2015-03-19 01:31:02
【问题描述】:
我有一个字典列表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是另一个可以接受浮点数作为参数的函数。
【问题讨论】:
-
举个例子会更好。
-
天哪。我会说没有 pythonic 的方式来做一件 unpythonic 的事情。您能否以不涉及这种方法的方式实现目标?
-
理想情况下,我认为您应该有一个像这样的大字典:
{'key1': {'fn':func, 'L': [L[0]['key1'], L[1]['key1'], etc. ]}, 'key2': ... etc }如果所有数据都与键相关,则应该按键分组,不是吗?为什么要使用具有相同键集的单独字典? -
@Shashank:感谢您的提问。我也有同样的问题。见stackoverflow.com/questions/29136156/…
标签: python dictionary