电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python map比f(wàn)or循環(huán)快在哪

瀏覽:8日期:2022-07-10 15:20:39

實(shí)驗(yàn)結(jié)論

如果需要在循環(huán)結(jié)束后獲得結(jié)果,推薦列表解析; 如果不需要結(jié)果,直接使用for循環(huán), 列表解析可以備選; 除了追求代碼優(yōu)雅和特定規(guī)定情境,不建議使用map

如果不需要返回結(jié)果

這里有三個(gè)process, 每個(gè)任務(wù)將通過(guò)增加循環(huán)提高時(shí)間復(fù)雜度

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)))

然后通過(guò)三種循環(huán)方式,去依次執(zhí)行三種任務(wù)

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)))

python map比f(wàn)or循環(huán)快在哪

python map比f(wàn)or循環(huán)快在哪

python map比f(wàn)or循環(huán)快在哪

從上述的圖像中,可以直觀的看到, 隨著任務(wù)復(fù)雜度的提高以及數(shù)據(jù)量的增大,每個(gè)循環(huán)完成需要的時(shí)間也在增加,但是map方式花費(fèi)的時(shí)間明顯比其他兩種要更多。 所以在不需要返回處理結(jié)果時(shí),選擇標(biāo)準(zhǔn)for或者列表解析都可以。

因?yàn)闃?biāo)準(zhǔn)for循環(huán)和列表解析方式在循環(huán)任務(wù)復(fù)雜度逐漸提高的情況下,處理時(shí)間基本沒(méi)有差異。

需要返回結(jié)果

這里有三個(gè)task, 每個(gè)任務(wù)將通過(guò)增加循環(huán)提高時(shí)間復(fù)雜度

def task1(val, type=None): return chr(val % 123)def task2(val, type): if type == 'list': return [task1(_) for _ in range(val)] elif type == 'for': res = list() for _ in range(val): res.append(task1(_)) return res elif type == 'map': return list(map(lambda _: task1(_), range(val)))def task3(val, type): if type == 'list': return [task2(_, type) for _ in range(val)] elif type == 'for': res = list() for _ in range(val): res.append(task2(_, type)) return res elif type == 'map': return list(map(lambda _: task2(_, type), range(val)))

然后通過(guò)三種循環(huán)方式,去依次執(zhí)行三種任務(wù)

def list_comp(): # return [task1(i, 'list') for i in range(length)] return [task2(i, 'list') for i in range(length)] # return [task3(i, 'list') for i in range(length)]def for_loop(): res = list() for i in range(length): # res.append(task1(i, 'for')) res.append(task2(i, 'for')) # res.append(task3(i, 'for')) return resdef map_exp(): # return list(map(lambda v: task1(v, 'map'), range(length))) return list(map(lambda v: task2(v, 'map'), range(length))) # return list(map(lambda v: task3(v, 'map'), range(length)))

python map比f(wàn)or循環(huán)快在哪

python map比f(wàn)or循環(huán)快在哪

python map比f(wàn)or循環(huán)快在哪

從上述的圖像中,可以直觀的看到, 隨著任務(wù)復(fù)雜度的提高以及數(shù)據(jù)量的增大,每個(gè)循環(huán)完成需要的時(shí)間也在增加,但是明顯看出, 使用list_comp列表解析在, 循環(huán)需要返回處理結(jié)果的每次任務(wù)中都表現(xiàn)的很好,基本快于其他兩種迭代方式。

而標(biāo)準(zhǔn)for循環(huán)和map方式在循環(huán)任務(wù)復(fù)雜度逐漸提高的情況下,處理時(shí)間基本沒(méi)有差異。

為什么普遍認(rèn)為map比f(wàn)or快?

我認(rèn)為可能跟處理的數(shù)據(jù)量有關(guān)系,大部分場(chǎng)景下,使用者只測(cè)試了少量的數(shù)據(jù)(100W以下,比如這篇文章,就是數(shù)據(jù)量比較少,導(dǎo)致速度的區(qū)別不明顯),在少量的數(shù)據(jù)集下,我們確實(shí)看到了map方式比f(wàn)or循環(huán)快,甚至有時(shí)候比列表解析還稍微快一點(diǎn),但是當(dāng)我們逐漸把數(shù)據(jù)量增加原來(lái)的100倍,這時(shí)候差距的凸現(xiàn)出來(lái)了。

python map比f(wàn)or循環(huán)快在哪

如上圖,在小數(shù)據(jù)集上(100W-1KW之間), 三者消耗的時(shí)間差不多相等,但是用map方式遍歷和處理,還是有一定的加速優(yōu)勢(shì)。具體實(shí)驗(yàn)代碼可以通過(guò)Github獲得

以上就是python 為什么map比f(wàn)or循環(huán)快的詳細(xì)內(nèi)容,更多關(guān)于python map和for循環(huán)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 玄米影院| 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 模型公司_模型制作_沙盘模型报价-中国模型网 | uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 北京乾茂兴业科技发展有限公司| 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 喷漆房_废气处理设备-湖北天地鑫环保设备有限公司 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好| 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 炒货机-炒菜机-炒酱机-炒米机@霍氏机械 | 电主轴-高速精密电主轴-高速电机厂家-瑞德沃斯品牌有限公司 | POS机办理_个人POS机免费领取 - 银联POS机申请首页 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | 打包箱房_集成房屋-山东佳一集成房屋有限公司| 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 铝机箱_铝外壳加工_铝外壳厂家_CNC散热器加工-惠州市铂源五金制品有限公司 | 执业药师报名条件,考试时间,考试真题,报名入口—首页 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 影像测量仪_三坐标测量机_一键式二次元_全自动影像测量仪-广东妙机精密科技股份有限公司 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 国产液相色谱仪-超高效液相色谱仪厂家-上海伍丰科学仪器有限公司 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 |