python map比比for循环快在哪循环快在哪
主要介绍了python 为什么map比for循环快,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
实验结论实验结论
如果需要在循环结束后获得结果,推荐列表解析;
如果不需要结果,直接使用for循环, 列表解析可以备选;
除了追求代码优雅和特定规定情境,不建议使用map
如果不需要返回结果如果不需要返回结果
这里有三个process, 每个任务将通过增加循环提高时间复杂度
def process1(val, type=None):
chr(val % 123)
def process2(val, type):
if type == "list":
[process1(_) for _ in range(val)]
elif type == "for":
for _ in range(val):
process1(_)
elif type == "map":
list(map(lambda _: process1(_), range(val)))
def process3(val, type):
if type == "list":
[process2(_, type) for _ in range(val)]
elif type == "for":
for _ in range(val):
process2(_, type)
elif type == "map":
list(map(lambda _: process2(_, type), range(val)))
然后通过三种循环方式,去依次执行三种任务
def list_comp():
[process1(i, "list") for i in range(length)]
# [process2(i, "list") for i in range(length)]
# [process3(i, "list") for i in range(length)]
def for_loop():
for i in range(length):
process1(i, "for")
# process2(i, "for")
# process3(i, "for")
def map_exp():
list(map(lambda v: process1(v, "map"), range(length)))
# list(map(lambda v: process2(v, "map"), range(length)))
# list(map(lambda v: process3(v, "map"), range(length)))