22

以下では、マップ関数を使用して最初のリストを整数リストに変換しようとしていますが、どうすればこれを達成できますか

T1 = ['13', '17', '18', '21', '32']
print T1
T3=[map(int, x) for x in T1]
print T3
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]]

Expected is:

T3=[13,17,18,21,32] 
4

4 に答える 4

53
>>> T1 = ['13', '17', '18', '21', '32']
>>> T3 = list(map(int, T1))
>>> T3
[13, 17, 18, 21, 32]

これは次と同じことを行います:

>>> T3 = [int(x) for x in T1]
>>> T3
[13, 17, 18, 21, 32]

だからあなたがしていることは

>>> T3 = [[int(letter) for letter in x] for x in T1]
>>> T3
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]]

混乱が解消されることを願っています。

于 2012-04-13T17:20:05.083 に答える
3
>>> T1 = ['13', '17', '18', '21', '32']
>>> print [int(x) for x in T1]
[13, 17, 18, 21, 32]

リスト内包内にマップは必要ありません。マップは別のリストを作成するので、最終的にリストのリストになります。

警告:これは、文字列が数字であることが許可されている場合に機能します。そうでない場合は、例外が発生します。

于 2012-04-13T17:21:36.530 に答える