map
関数を使用してリストの値を変換しようとしていますが、奇妙な結果が出ています。map()に問題があります
s = input("input some numbers: ")
i = map(int, s.split())
print(i)
ができます:
input some numbers: 4 58 6
<map object at 0x00000000031AE7B8>
なぜそれが戻らない[ '4'、 '58'、 '6']?
map
関数を使用してリストの値を変換しようとしていますが、奇妙な結果が出ています。map()に問題があります
s = input("input some numbers: ")
i = map(int, s.split())
print(i)
ができます:
input some numbers: 4 58 6
<map object at 0x00000000031AE7B8>
なぜそれが戻らない[ '4'、 '58'、 '6']?
リストの代わりにジェネレータを返すpython 3を使用しています。
マップジェネレータを割り当てた後に変数のlist(x)
を呼び出します。
代わりに、リスト内包を使うこともできることは注目に値する - '' [int(x)for x in s.split()] ''。これは素晴らしく読みやすいですが、この(単純な)ケースでは、地図が読めないとは言いません。 –
list(i)
を入力する必要があります。['4','58','6']
をmap
とすると、リストの代わりにジェネレータが返されます。 Lattywareは、最初の答えのコメントで指摘したように また、あなたはより良い次の操作を行います。
i = [int(x) for x in s.split()]
なぜですか? [ジャミラクの答え](http://stackoverflow.com/a/10106900/722121)より良い説明します。 –
彼は私の前に投稿し、それを説明した。だから私はしなかった:p – mshsayem
あなたは、印刷(STR(i))をしてみましたか? – Soader03
期待通りに動作しますか、いくつかの文脈を教えてください。 Pythonのバージョン? 2.xまたは3.xを使用していますか? – KurzedMetal
私はpython 3.2.2を使用していますが、この時点ではコンテキストはありません。 – Sergei