'float' 对象不可迭代,迭代 2 个浮点列表

'float' object is not iterable, Iteration over 2 float lists

当我尝试执行这个简单的循环时:

list1 = [1.5,2.6,3.9,4.0]
list2 = [3.2,4.5,5.0,5.0]
for i,j in zip(list1, list2):
 x = sum(i**2 - 2*j)
 print(x)

我希望程序获取每个列表中的每个索引项,遍历整个列表并执行算术运算,然后将所有内容相加并打印总和。例如:

(1.5**2 - 2*3.2) + (3.2^2 - 2*4.5) ...

我收到以下错误:ValueError: 'float' object is not iterable

这是为什么?我认为它与循环的格式有关,但我仍然不认为语法对我来说很清楚,希望得到帮助。

要添加列表,您可以这样做:

list1 = [1.5, 2.6, 3.9, 4.0]
list2 = [3.2, 4.5, 5.0, 5.0]

result = sum([a**2 - 2 * b for a, b in zip(list1, list2)])

print(result)  

说明:sum接受一个iterable,而你给它一个计算的中间结果。如果使用sum,则不需要使用循环