gpt4 book ai didi

python - 这是Python中map/lambda的简化版本吗?

转载 作者:行者123 更新时间:2023-12-01 02:29:47 26 4
gpt4 key购买 nike

对于带数组的映射/lambda 表达式 a = [1, 2, 3, 4] :

f = map(lambda x : x + 32, a)

似乎我可以简化写为:

f = [x + 32 for x in a]

我想知道是否有什么区别。

最佳答案

由于函数的开销,

lambda 往往会变慢。而且 lambda 往往会使代码更难以阅读。您还可以计时:

#!/usr/bin/env python

import time

a = [1, 2, 3, 4]

t1 = time.time()
f = map(lambda x : x + 32, a)
t2 = time.time()-t1
print t2

t3 = time.time()
g = [x + 32 for x in a]
t4 = time.time()-t3
print t4

此代码返回:

7.86781311035e-06
2.14576721191e-06

我还对较大的列表尝试了同样的方法,而 lambda 表达式所花费的时间几乎是两倍。

python -m timeit '[x + 32 for x in range(100000)]'

>> 100 loops, best of 3: 6.67 msec per loop

python -m timeit 'map(lambda x : x + 32, range(100000))'

>> 100 loops, best of 3: 12.5 msec per loop

这在性能上存在巨大差异。

关于python - 这是Python中map/lambda的简化版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com