编程语言
首页 > 编程语言> > python – 列表理解与地图

python – 列表理解与地图

作者:互联网

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

解决方法:

在某些情况下,map可能在显微镜下更快(当你没有为此目的制作lambda,但在map和listcomp中使用相同的函数时).在其他情况下,列表推导可能更快,并且大多数(并非所有)pythonistas认为它们更直接和更清晰.

使用完全相同的功能时,地图的微小速度优势的一个例子:

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

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

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

标签:map-function,python,list-comprehension
来源: https://codeday.me/bug/20190910/1802460.html