我有一个数据结构:
my_list = [0] {key1: [1, 2, 3]
key2: [4, 5, 6]
key3: .....
key4: .....}
[1] {key1: [.......]
key2: [... etc.
也就是说,4个字典的列表,每个字典有4个键,每个键有3个值的列表。很好很一致。在
我想遍历每个列表中的每个值,并用一个外部函数更新它。这个外部函数接受2个参数(我正在更新的值和包含在其各自键中的浮点值)。这是一个基本的数学问题,但问题是在迭代文件,因为它变得越来越复杂,我迷路了。在
到目前为止我所做的:
^{pr2}$代码不起作用,其他人可能很清楚原因。在
外部功能:
def external~_function(key, value):
E = ((value - key)/key)**2
return E
错误,TypeError: unsupported operand type(s) for -: 'list' and 'float'
所以主迭代行传递的是一个列表,而不是它看起来的每个元素。在
在for循环中,只使用一个键创建dict,而循环键只用于列表理解-
事实上,这种情况不会发生。另外,如果我没说错,
value
是一个列表,因此您将整个列表作为参数传递给外部函数,这可能不是您想要的。在一个简单的方法是(对于python2.7+和字典理解)—
^{pr2}$只有一句话是-
如果你在写/理解列表/听写理解上有困难,在写一行之前先把它缩进:
问题在于您的外部功能,您可以将其更改为:
如果您想将其作为列表:
^{pr2}$您的外部函数需要float/int,但它有一个列表,因此引发了错误
相关问题 更多 >
编程相关推荐