我有一个词典列表。每个都有一个键和一个3值列表。每个值都是一个ADC读数,我有一个函数可以采取并吐出转换后的值。
我想取每个值并使用此函数转换它。
for value in my_list[0].itervalues():
print value
这会将值打印为列表,但我想单独获取每个值并将其传递给要转换的函数
for value in my_list:
print value
打印出每个字典
我不确定如何将这些循环嵌套在一起以获取单个值,并使用转换后的值追加当前字典列表,或者完全生成单独的字典列表。我认为追加会更有效率。
答案 0 :(得分:2)
您可以使用map
功能在所有有价值的项目上应用您的功能:
new_dict={k:map(your_func,val) for k, val in your_dict.iteritems()}
如果你想创建一个新词典,你可以在词典理解中做到这一点:
map
另外,您可能会注意到这取决于您的函数签名和值,例如,如果您的函数接受多于1个参数,则此处无法使用>>> def my_func(a,b):
... return a+b
...
>>> l=[(1,2),(3,4),(5,6)]
>>> map(my_func,l)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: my_func() takes exactly 2 arguments (1 given)
。
示例:
>>> [my_func(i,j) for i,j in l]
[3, 7, 11]
在这种情况下,您可以使用列表理解:
o