1

基本的な質問
があります: と という名前の 2 つのリストがありa1ますb1。各リストの 1 つの項目を出力すると、 になりますが、ループで float number使用するとエラーが発生します。a1[i]*b1[i]

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

何故ですか?

4

2 に答える 2

3

a1またははfloatb1のリストではなく、float のリストのリストです。

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 に答える