为什么此地图无法在命令行运行?
默默地失败:
python -c "x=range(1000);map(lambda l: print(l), x)"
map
应该遍历range
,因为它在Python REPL中运行。
答案 0 :(得分:1)
运行此代码时(在python 3中),代码运行正常。但是,代码返回的是一个map对象,其中包含打印数字的说明,如此处所示
>>> x=range(1000);map (lambda l:print(l), x)
<map object at 0x6ffffd0cba8>
要获取要打印的数字,您需要遍历地图,例如
>>> x=range(1000)
>>> y=map (lambda l:print(l), x)
>>> for n in y:
... pass
...
0
1
2
3
4
5
6
7
8
etc.
答案 1 :(得分:1)
您可能正在尝试使用python2.x(以确保尝试运行python --version
)
在python 2中lambda l: print(l)
无效,因为print不是常规函数/方法。
尝试运行
python3 -c "x=range(1000);map (lambda l:print(l), x)΅
如果您想要一个兼容两个版本的解决方案,请尝试:
python -c "x=range(1000); print('\n'.join(map(lambda l: str(l), x)))"
加成: 使用列表推导的解决方案:
python -c "x=range(1000); print('\n'.join([ str(l) for l in x ]))"