迭代字典PYTHON列表中的值

时间:2015-07-09 15:43:42

标签: python loops dictionary iteration

我有一个词典列表。每个都有一个键和一个3值列表。每个值都是一个ADC读数,我有一个函数可以采取并吐出转换后的值。

我想取每个值并使用此函数转换它。

for value in my_list[0].itervalues():
  print value

这会将值打印为列表,但我想单独获取每个值并将其传递给要转换的函数

 for value in my_list:
      print value

打印出每个字典

我不确定如何将这些循环嵌套在一起以获取单个值,并使用转换后的值追加当前字典列表,或者完全生成单独的字典列表。我认为追加会更有效率。

1 个答案:

答案 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