我有一个字符串列表,可以使用普通循环打印出来:
for x in listing:
print(x)
我认为使用 lambda 来减少循环语法并启动我在 Python 中学习 lambda 应该非常简单(我是 Python 的新手)。
Given that the syntax map
是 map(function, iterable, ...)
我试过:
map(lambda x: print(x), listing)
但这不会打印出任何东西(它也不会产生错误)。我已经通过在线 Material 进行了一些搜索,但迄今为止我发现的所有内容都是基于 Python 2 的,即提到使用 Python 2 这是不可能的,但它应该在 Python 3 中,没有明确提及如何做到这一点。
我做错了什么?
最佳答案
在 python 3 中,map
返回一个迭代器:
>>> map(print, listing)
<map object at 0x7fabf5d73588>
这个迭代器是惰性的,这意味着在您迭代它之前它不会做任何事情。一旦您对其进行迭代,您就会打印列表的值:
>>> listing = [1, 2, 3]
>>> for _ in map(print, listing):
... pass
...
1
2
3
这也意味着 map
不是完成这项工作的正确工具。 map
创建一个迭代器,因此只有在您计划迭代该迭代器时才应使用它。它不应该用于副作用,例如打印值。另见 When should I use map
instead of a for loop .
关于python - 如何使用 lambda 打印字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49693826/