1

文字列のリストがあります。次のようになります。

['25 32 49 50 61 72 78 41\n',
 '41 51 69 72 33 81 24 66\n']

この文字列のリストをintのリストのリストに変換したいと思います。したがって、私のリストは次のようになります。

[[25, 32, 49, 50, 61, 72, 78, 41], [41, 51, 69, 72, 33, 81, 24, 66]]

私はこれについてしばらく考えていましたが、解決策を見つけることができませんでした。ちなみに、私が上で与えた文字列のリストは、

open("file", "r").readlines()
4

3 に答える 3

7

を使用split()して文字列をリストに分割し、を使用int()してそれらを整数に変換します。

使用map()

In [10]: lis=['25 32 49 50 61 72 78 41\n',
   ....:  '41 51 69 72 33 81 24 66\n']

In [11]: [map(int,x.split()) for x in lis]
Out[11]: [[25, 32, 49, 50, 61, 72, 78, 41], [41, 51, 69, 72, 33, 81, 24, 66]]

またはリスト内包表記を使用する:

In [14]: [[int(y) for y in x.split()] for x in lis]
Out[14]: [[25, 32, 49, 50, 61, 72, 78, 41], [41, 51, 69, 72, 33, 81, 24, 66]]

このリストはファイルから直接作成することもできます。次の必要はありませんreadlines()

with open("file") as f:
    lis=[map(int,line.split()) for line in f]
    print lis
...
[[25, 32, 49, 50, 61, 72, 78, 41], [41, 51, 69, 72, 33, 81, 24, 66]]
于 2012-10-29T16:47:01.507 に答える
0
x = ['25 32 49 50 61 72 78 41\n', '41 51 69 72 33 81 24 66\n']    
map(lambda elem:map(int, elem.split()), x)
于 2012-10-29T16:53:50.717 に答える
0
  b=[[int(x) for x in i.split()] for i in open("file", "r").readlines()]

このリスト内包を試してください

于 2012-10-30T15:24:48.910 に答える