命令行中的Python命令未执行

时间:2016-02-18 19:37:51

标签: python python-3.x command-line

为什么此地图无法在命令行运行?

默默地失败:

python -c "x=range(1000);map(lambda l: print(l), x)"

map应该遍历range,因为它在Python REPL中运行。

2 个答案:

答案 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 ]))"