5

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

4

2 回答 2

9

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

list(x)在将变量分配给地图生成器后调用它。

于 2012-04-11T13:28:25.790 回答
2

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

i = [int(x) for x in s.split()]
于 2012-04-11T13:28:49.017 回答