2016-11-26 11 views
0

python要素のliststrからintに変換したいと思います。文字列からintへの変換のリスト

私の最初のリストは、次のようになります。

l1 = ['723', '124', '1,211', '356'] 

私が試しコード:

私に語ったエラーになった
l1 = list(map(int, l1)) 

を:また

ValueError: invalid literal for int() with base 10: '1,211' 

、私はmapを試してみましたfloat

l1 = list(map(float, l1)) 

しかし、これは、エラーを生じた:

ValueError: could not convert string to float: '1,211' 

Iは、マップ機能を使用してコードにintfloatの両方を試してみました。誰かが私が間違っているところで私を修正することはできますか?

+1

は '1,211' "1ポイント211" や "千211" ことになっていますか? –

答えて

2

は、簡単なリスト内包でそれを行います。

>>> l1 = ['723', '124', '1,211', '356'] 
>>> [int(i.replace(',','')) for i in l1] 
[723, 124, 1211, 356] 
4

','を含む値にint又はfloatいずれかをマッピングするフロートまたはint型にstr S変換として失敗し、Pythonはフロートまたは数千のため用セパレータとして','を許可しない(それらが正しく形成された数値を表す要件を有しますそれは','は千単位の区切りである場合@tobias_kが述べたように、あなたがmapに供給すると、すぐにintを適用理解に)(replace(',', '')を使用

)タプルと競合:

r = list(map(int , (i.replace(',', '') for i in l1))) 
rのために指名手配結果を得るために:

[723, 124, 1211, 356] 
+0

は1211であり、1.211ではありません。この場合、私は何をすべきですか? – vikky

+1

この場合、 'i.replace( '、'、 '')' –

+0

@tobias_kそれは働いた。 Thnks – vikky

1

これは役立つかもしれない:

l1 = ['723', '124', '1,211', '356'] 
l1 = [int(i.replace(',','')) for i in l1] 
for x in l1: 
    print("{:,}".format(x)) 

出力:

723 
124 
1,211 
356 
関連する問題