列表项无法成倍增加

时间:2012-12-05 18:05:56

标签: python list

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

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

为什么?

2 个答案:

答案 0 :(得分:3)

a1b1不是浮点数列表,而是浮点数列表。

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)