python - 列表理解与 map

标签 python list-comprehension map-function

是否有理由更喜欢使用 map() 而不是列表理解,反之亦然?它们中的任何一个通常比另一个更有效还是被认为通常更pythonic?

最佳答案

map 在某些情况下可能会在微观上更快(当您不是为此目的制作 lambda,而是在 map 和 listcomp 中使用相同的函数时)。在其他情况下,列表解析可能更快,并且大多数(不是全部)pythonista 认为它们更直接和更清晰。

使用完全相同的功能时 map 的微小速度优势的示例:

$ python -m timeit -s'xs=range(10)' 'map(hex, xs)'
100000 loops, best of 3: 4.86 usec per loop
$ python -m timeit -s'xs=range(10)' '[hex(x) for x in xs]'
100000 loops, best of 3: 5.58 usec per loop

当 map 需要 lambda 时性能比较如何完全颠倒的示例:

$ python -m timeit -s'xs=range(10)' 'map(lambda x: x+2, xs)'
100000 loops, best of 3: 4.24 usec per loop
$ python -m timeit -s'xs=range(10)' '[x+2 for x in xs]'
100000 loops, best of 3: 2.32 usec per loop

关于python - 列表理解与 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247486/

相关文章:

python - 使用 Python 以小写形式读取 CSV 文件

带有副作用的 Java 流映射和收集或 foreach 并填充结果列表

Python - 高级参数嵌套循环

python - 无法在Python3、Ubuntu14.04中使用pip安装NumPy

python - 将 PyMC3 traceplot 子图保存到图像文件

python - 列表理解与元组赋值

python - 如何保持替换字符串的数量

在 Haskell 中动态构建列表理解

c# - 如何在 C# 中进行列表理解(将列表转换为另一个列表的紧凑方式)?

python - 解压 map() 参数的嵌套列表