primes = [2,3,5,7..] (prime numbers)
map(lambda x:print(x),primes)
它不打印任何东西。 这是为什么? 我试过了打印在地图中不打印时,Python
sys.stdout.write(x)
也是,但也不起作用。
primes = [2,3,5,7..] (prime numbers)
map(lambda x:print(x),primes)
它不打印任何东西。 这是为什么? 我试过了打印在地图中不打印时,Python
sys.stdout.write(x)
也是,但也不起作用。
由于lambda x: print(x)
是在Python < 3语法错误,我假设的Python 3,这意味着map
返回一个生成器,意思是让地图以实际调用列表中的每个元素的功能,你需要通过迭代最终的发电机。
幸运的是,这可以轻松完成:
list(map(lambda x:print(x),primes))
哦,你可以摆脱拉姆达也一样,如果你喜欢:
list(map(print,primes))
但是,在这一点上,你最好关闭与让打印处理:
print(*primes, sep='\n')
注:我刚才说'\n'.join
将是一个好主意。这只对str的列表是真的。
这个工作对我来说:
>>> from __future__ import print_function
>>> map(lambda x: print(x), primes)
2
3
5
7
17: [None, None, None, None]
你使用Python 2.x的地方打印是一个声明,而不是一个功能?
Python 2或Python 3? –
这是Python 2中的一个语法错误,所以我会假定为Python 3. –