2016-12-29 10 views
2

のリストにカンマで区切られた文字列を変換し、Iは現在そうよう所与の要素の1つの要素リストを有する:フロートPythonで

値のそれぞれのみコンマで区切られ
x= ['1.1,1.2,1.6,1.7'] 

。私はこのfloatのリスト、例えばのような

x=[1.1, 1.2, 1.6, 1.7] 

ようにしたい私はx=[float(i) for i in x]x=[float(i) for i in x.split()]を試してみたが、両方はエラーを返します。

+1

は '( '')[0] .split' xをしてみてください? – martianwars

+0

'x'はリストなので、' x [0] 'でアクセスする必要があります。また、区切り文字を 'split'呼び出しに指定する必要があります(例:' x [0])。split( '、') ' – UnholySheep

答えて

0

スプリットコンマによって、文字列、および構築各項目からfloat

[ float(item) for item in '1.1,2.3,5.1'.split(',') ] 
+0

OPには異なる入力があります – martianwars

5

xはそうあなたがx[0]を必要とし、その文字列にアクセスするために、1つの文字列を持つリストです。その文字列はコンマで区切られているので、区切り文字:split(',')を指定する必要があります。 (そうでない場合は、空白、as described in the docs上の文字列を分割しようとしsplit()。)

あなたがで終わる:

[float(i) for i in x[0].split(',')] 
0

あなたは文字列ではなく、単一の要素のリストにあなたのsplit()関数を適用していることを確認します。そのためにはx[0]を使用してください。また、split()ファンクションにセパレータ,を渡します。

x = [float(i) for i in x[0].split(',')] 
0

x=[float(i) for i in x.split()]は、2つのものを除いてほぼ正確です。 1つは、split()関数には何も渡していないので、文字列内の何も分割しません(文字列には空白だけが分割されます)。コンマで区切りたいので、カンマをコンマで渡す必要があります(x.split(',')など)。

xは、という配列の文字列を参照する必要があります。x= ['1.1,1.2,1.6,1.7']は、1つの文字列を含むリストです。最終的なコードは次のようになります。xx = '1.1,1.2,1.6,1.7'のような単なる文字列であった場合、あなたは、単にfloats = [float(i) for i in x.split(',')]を使用することになり[1.1, 1.2, 1.6, 1.7]

x = ['1.1,1.2,1.6,1.7'] 
floats = [float(i) for i in x[0].split(',')] 
print(floats) 

をこれはfloatのリストを出力します。

+1

これらはリストであり、配列ではありません:https://docs.python.org/2/library/array.html – UnholySheep

+0

@UnholySheepありがとう、私は用語を修正しました。 –

+0

FYI「何にも分割しない」という記述は正しくありません。[docs](https://docs.python.org/3/library/stdtypes.html#str.split)を参照してください。デリミタは空白で分割することはありません。 – whrrgarbl

1

あなたはこのようmap()を使用することができます。

list(map(float, x[0].split(','))) 

map()は(:x[0].split(',')我々の場合には、このリストを)機能(私たちの場合はfloat)と反復可能になります。 float機能は、それがこのlist comprehensionと等価である私たちのリストの各項目x[0].split(',')

のために呼び出されます。

[float(item) for item in x[0].split(',')] 
+0

Python3 +では、 'map'はリストを返しません。マップオブジェクトを返します。リストに変換しなければなりません。 –

+0

@IronFist Python 3はこの質問でタグ付けされていません! – ettanany

+0

Python2はありませんので、あなたはあなたの答えを一般化しなければなりません。あなたの答えはPython3を指しています(Python3のドキュメントにリンクしています)。 –