primes = [2,3,5,7..] (prime numbers)
map(lambda x:print(x),primes)
它不打印任何内容。 这是为什么? 我已经尝试过
sys.stdout.write(x)
也是,但也不起作用。
最佳答案
由于 lambda x: print(x)
是 Python < 3 中的语法错误,我假设 Python 3。这意味着 map
返回一个生成器,这意味着get map 要实际在列表的每个元素上调用该函数,您需要迭代生成的生成器。
幸运的是,这可以轻松完成:
list(map(lambda x:print(x),primes))
哦,如果你愿意的话,你也可以摆脱 lambda:
list(map(print,primes))
但是,此时您最好让 print 来处理它:
print(*primes, sep='\n')
<小时/>
注意:我之前说过 '\n'.join
是个好主意。这仅适用于 str 列表。
关于python-3.x - 打印在 map 中时不打印,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60102998/