python - 如何使用 lambda 打印字符串列表?

标签 python python-3.x lambda

我有一个字符串列表,可以使用普通循环打印出来:

for x in listing:
    print(x)

我认为使用 lambda 来减少循环语法并启动我在 Python 中学习 lambda 应该非常简单(我是 Python 的新手)。

Given that the syntax mapmap(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/

相关文章:

python - 根据重复项对 Python 列表进行分组

Python GIL 和线程同步

Python Pickle 文件权限

python - re.findall 的结果顺序有保证吗?

python - scrapy可以在命令行上运行,但不能在sublime上运行

java - 如何用方法引用替换 "!= null"语句?

Java 8 : grouping by multiple fields and then sort based on value

arrays - Parallel.ForEach 不起作用,而正常的 For Each 循环是

python - 在参数列表中指定嵌套字典键

python - 打印变量时 sys.stdout.write 和 print 的区别