3

という名前の次のリストとして、文字列のリストのリストがありますl

[['1', '2', '3', '4', '5', '6'], ['2', '3', '2', '3', '4']]

リストを項目 2 から始まる int として表示したい。次のコードは目的を果たしますが、リスト項目を int に変換しません。

>>> [l[i][2:] for i in range(len(l))]
[['3', '4', '5', '6'], ['2', '3', '4']]

を試しmap()ましたが、結果は次のように成功しませんでした:

>>> [map(int,l[i][2:]) for i in range(len(l))]
[<map object at 0x00000000029CAE10>, <map object at 0x00000000029CAF98>]

リスト項目を文字列から int に変換するにはどうすればよいですか?

4

2 に答える 2

2

プライマリ リスト要素を反復処理してみてください。

>>> A = [['1', '2', '3', '4', '5', '6'], ['2', '3', '2', '3', '4']]
>>> [list(map(int, x[2:])) for x in A]
[[3, 4, 5, 6], [2, 3, 4]]

呼び出しlist()により、Python 3 はマップを完全に評価するよう強制されます。Python 2 では必要ありません。

于 2013-07-13T22:21:14.037 に答える