Python Python3 中的方块列表

Python List of Squares in Python3

在 Python 2.X 中,我知道输出一个正方形列表就像这样简单:

map(lambda x: x**2, range(20)),因为它会输出一个列表(迭代器),而不是生成器。

但是在 Python 3.X 中,这个 returns 生成器很有趣,但在输出列表方面构成了基本障碍。我尝试了相同的语法,正如预期的那样,map returns 一个地图对象。我什至尝试过:

map(lambda x: x**2, [x for x in range(20)]) 仍然没有列表。

map() returns 地图对象生成器。

我能想到的最佳解决方案是使用 map() 作为 'list' 生成器进行迭代的基本列表理解。

[x for x in map(lambda x: x**2, range(20))]

然而它似乎有点污染,我觉得可能有更简单的方法绕过生成器并简单地输出一个列表。

我是不是漏掉了什么?

list(map(lambda x: x**2, list(range(20)))) 应该这样做,但是对于像这样的简单任务,您应该使用列表理解而不使用 map

[x**2 for x in range(20)]