'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
,则不需要使用循环
当我尝试执行这个简单的循环时:
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
,则不需要使用循环