4

常にスペースで区切られた5つの数値である文字列を読み取っています。これを、5つの個別の整数に分割して、個別に処理できるようにします。

これまでのところ:

reader = csv.reader([data.data], skipinitialspace=True)
for r in reader:
    print r

これにより、値を出力できますが、個々の整数として保存するにはどうすればよいですか?

4

1 に答える 1

15

あなたはこのようにそれを行うことができます。sからの行を想定していますreader

>>> s='2 3 4 5 6'
>>> s.split(' ')
['2', '3', '4', '5', '6'] #just split will give strings
>>> [int(i) for i in s.split(' ')] #typecasting to ints
[2, 3, 4, 5, 6] #now you have ints

ただし、注意点として、からの行には他のデータ型がないと想定していreaderます。そうしないと、このコードがクラッシュする可能性があります。もちろんtry: except:、それを回避したり、より微調整された解析手法を使用したりすることもできます。

更新0: @PavelAnnosovからの素晴らしいワンライナー- map(int, s.split())mapは、関数を任意の反復可能関数にマップできる、気の利いたpython組み込み関数です。

更新1:これがどのように機能するかを確認するのはかなり簡単です。しかし、@user2152165にそれをさらに明確にするために

ints_list = []
for r in reader:
    ints_list = map(int, r.strip().split(' '))

ints_listあなたのintのリストがあります。あなたがそれでやりたいことをしてください...

于 2013-03-09T18:38:02.013 に答える