【发布时间】:2015-10-02 19:33:34
【问题描述】:
我有一个数据结构:
my_list = [0] {key1: [1, 2, 3]
key2: [4, 5, 6]
key3: .....
key4: .....}
[1] {key1: [.......]
key2: [... etc.
即4个字典的列表,每个字典有4个键,每个键有3个值的列表。很好而且一致。
我想遍历每个列表中的每个值并使用外部函数对其进行更新。这个外部函数有 2 个参数(我正在更新的值和包含在其各自键中的浮点值)。这是一个基本的数学,但问题在于迭代文件,因为它变得越来越复杂,我迷路了。
到目前为止我做了什么:
def Efunction_conversion(my_list):
converted_dict_list = []
for i in range(0,4):
new_dict = {key:[external_function(float(key), value) for key, value in my_list[i].iteritems()]} ##problems occur here
converted_dict_list.append(new_dict)
return converted_dict_list
代码不起作用,其他人可能很清楚原因。
外部函数:
def external~_function(key, value):
E = ((value - key)/key)**2
return E
还有错误,TypeError: unsupported operand type(s) for -: 'list' and 'float'
所以主迭代行传递的是一个列表,而不是它看起来的每个元素。
【问题讨论】:
-
k是在哪里定义的?你有什么错误吗? -
您还应该详细说明它是如何不工作的,测试时哪个输入没有发生什么?
-
当它被传递给外部函数时,我得到“TypeError: unsupported operand type(s) for -: 'list' and 'float'”。
-
@Anand S Kumar k 应该是“关键”我现在编辑了代码。
-
能否提供外部函数示例
标签: python list iteration list-comprehension