我有一个基本问题:
有两个名为a1
和的列表b1
。如果我打印出每个列表的一项,它将是 a float number
,但是当我a1[i]*b1[i]
在循环中使用时,它会给出一个错误:
TypeError: can't multiply sequence by non-int of type 'float'
这是为什么?
要么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'
想想@Gille 可能有你的错误。
如果您想要在循环中做的只是将条目相乘,那么快速的方法是使用 numpy 数组:
import numpy as np
result = np.multiply(a1,b1)
如有必要,转换回列表:
result = list(result)