栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【20211130】【Python】代码优化初体验,map / lambda / for循环 / 列表推导式的性能对比

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【20211130】【Python】代码优化初体验,map / lambda / for循环 / 列表推导式的性能对比

一、什么是列表推导式?

        列表推导式可以利用 range、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。

        语法:[表达式  for  迭代变量 in  可迭代对象 [if  条件表达式]] / [表达式  [if  条件表达式1 else  条件表达式2]  for  迭代变量 in  可迭代对象]

        其中,[if  条件表达式] 和 [if  条件表达式1 else  条件表达式2]  可选择,可以有也可以没有。如果只有 if 表达式,if 表达式在后;如果 if-else 都有,那么 if-else 在前。

        (参考:Python列表推导式(for表达式)及用法)

二、列表推导式和 for 循环

        列表推导式和 for 循环原理上一样,作用也一样,但执行效率上,列表推导式要明显比 for 循环快!近乎 double 的程度~~~

        (参考:python的推导式 —— 列表推导式、集合和字典推导式)

        (参考:列表推导式对比For循环执行效率)

三、列表推导式和 map

        正常情况下 map 要比列表推导式快一些,但如果在 map 中使用 lambda,那么 map 会比列表推导式慢。

        map 优点:map 返回的是生成器,对于大容量的操作,不会导致内存爆掉。(但列表推导式可能导致内存爆掉)

        (参考:python3 列表推导式 vs map 差别)

        (参考:当列表推导式遇到lambda(匿名函数))

        列表推导式优点:当 map 中有 lambda 时,列表推导式比 map 快。


总结:

        运行效率:for 循环 < map(带 lambda) < 列表推导式 < map(不带 lambda)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618890.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号