亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:2日期: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)文章:
主站蜘蛛池模板: 在线观看黄色毛片 | 亚洲综合色视频 | 国产日产久久高清欧美一区 | 国产ar高清视频+视频 | 91制服| 优看影院污 | 91在线播 | 久久综合免费 | 成人免费高清视频网址 | 最新黄色网址在线观看 | 欧美日韩国产综合视频在线看 | 6080伦理久久亚洲精品 | 欧美伦理一区二区三区 | 日韩在线看片 | 国产综合一区二区 | 黄色一级片在线观看 | 亚洲综合无码一区二区 | 中国人xxxxbbbb国产 | 女视频www女中国 | 国产性老妇女做爰在线 | 亚洲精品高清视频 | 黄片123| 青草视频网址 | 欧美一区二区激情三区 | 精品国产一区二区三区久久影院 | 欧美成人aaa大片 | 中文字幕无线码一区二区三区 | 国产福利一区二区麻豆 | 黄色一级大片 | 久久机热一这里只精品 | 黄片一级毛片 | 国产二区视频在线观看 | 91精品国产欧美一区二区 | 成人欧美精品一区二区不卡 | 国产高清看片日韩欧美久久 | 欧美日韩一区二区三区免费 | 亚洲国产日韩在线人成蜜芽 | 韩国亚洲伊人久久综合影院 | 国产精品video | 艹逼视频免费观看 | 蜜芽在线|