我有一个基本问题:
有两个名为a1
和b1
的列表。
如果我打印出每个列表中的一个项目,它将是float number
,但是当我在循环中使用a1[i]*b1[i]
时,它会出错:
TypeError: can't multiply sequence by non-int of type 'float'
为什么?
答案 0 :(得分:3)
a1
或b1
不是浮点数列表,而是浮点数列表。
a1=[1.234, 1.234];
a2=[1.234, 1.234];
>>> a1[0]*a2[0]
1.522756
a3=[[1.234], [1.234]];
>>> a1[0]*a3[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
答案 1 :(得分:1)
想想@Gille可能会收到你的错误。
如果你想在你的循环中做的只是将条目相乘,那么快速的方法就是使用numpy数组:
import numpy as np
result = np.multiply(a1,b1)
如有必要,请回到列表中:
result = list(result)