1

我有一个基本问题:
有两个名为a1和的列表b1。如果我打印出每个列表的一项,它将是 a float number,但是当我a1[i]*b1[i]在循环中使用时,它会给出一个错误:

TypeError: can't multiply sequence by non-int of type 'float'

这是为什么?

4

2 回答 2

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'
于 2012-12-05T18:15:31.243 回答
1

想想@Gille 可能有你的错误。

如果您想要在循环中做的只是将条目相乘,那么快速的方法是使用 numpy 数组:

import numpy as np
result = np.multiply(a1,b1)

如有必要,转换回列表:

result = list(result)
于 2012-12-05T18:29:46.177 回答