2016-11-30 5 views
0

リストのリストにあるすべての要素をfloatにキャストしようとしていますが、最初のループで好きなときにその型を出力すると、元のものです。廃盤リストのリストのすべての要素をPythonで浮動小数点にキャストする

for x in f: 
    for a in x: 
     a = float(a) 

for x in f: 
    for a in x: 
     print(type(a),a) 

私は

<class 'numpy.str_'> 0.0 
<class 'float'> 0.0 
<class 'float'> 1.0 
<class 'float'> nan 
<class 'numpy.float64'> 0.3 

を取得する最初のループは、要素の種類を変更するべきではないでしょうか。

答えて

1
for x in f: 
    for a in x: 
     a = float(a) 

これは期待どおりのリストの要素を更新しません。新しい変数にaを代入するだけです。

これを実行する方法はたくさんありますが、リストを再作成する方法もあります。ここでは簡単な例は、

a = [ "1", "2", "3" ] 
a = [ float(x) for x in a ] 
print(a) # Yield [1.0, 2.0, 3.0] 

だもう一つの方法は、直接それが働いたリスト

for index, a in enumerate(x): 
    x[index] = float(a) 
+0

内の項目を更新しています。ありがとう! – Atirag

+0

ちょうどあなたの2番目のソリューションでは、私はインデックスがループ上の最初でなければならないと思う – Atirag

+0

Opps、私の悪い。更新中 – Shaun

関連する問題