麻烦地图()

时间:2012-04-11 13:25:32

标签: python

我正在尝试使用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']?

2 个答案:

答案 0 :(得分:9)

您正在使用python 3返回生成器而不是列表。

在为地图生成器指定变量后,调用list(x)

答案 1 :(得分:2)

你需要list(i)来获取['4','58','6']因为map在python 3中返回生成器而不是列表。 此外,正如Lattyware在第一个答案的评论中指出的那样,你最好这样做:

i = [int(x) for x in s.split()]