【发布时间】:2015-07-10 15:43:24
【问题描述】:
我有一个字典列表。每个字典都有一组数字键和一个与之对应的值列表,总共三个对称数据结构:
dict_list = {key1: [1,2,3],
key2: [4,5,6],
...}
我正在使用
def function(dict_list):
converted_dict_list = []
for i in range(0,4):
new_dict = {k:map(external_function,value) for k, value in dict_list[i].iteritems()}
return converted_dict_list
这会遍历每个字典中每个键的每个列表。将它们发送到external_function,以便在新的字典列表中进行处理和更新。
但我想将值 和 每个值的键(作为浮点数)发送到外部函数;从外部函数反弹回来的结果将仅用于更新值(与给出的示例相同)。它们的键是字符串,但确实包含现在需要的浮点或整数值。
【问题讨论】:
-
那么...问题是什么?
-
您在寻找
float内置函数吗? -
问题是 map 只需要一个函数参数。但是我需要实现上面的代码来发送两个。额外的参数是字典的键,例如'5.5'......所以在我给出的结构中,'key1'和说'1'都需要同时进入外部函数。
-
您是否考虑过使用
functools.partial或lambda表达式来创建可以与map一起使用的东西?或者,切换到列表理解可能会更好:{k: [external_function(float(k), val) for val in value] for...}. -
map可以在函数参数之后接受任意数量的迭代。因此,该函数需要接受与可迭代数量一样多的参数。因此,您需要一种将包含浮点数的字符串转换为与值列表具有相同大小的可迭代对象的方法。是这样吗?
标签: python list dictionary