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

您的位置:首頁技術文章
文章詳情頁

python map比for循環快在哪

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

實驗結論

如果需要在循環結束后獲得結果,推薦列表解析; 如果不需要結果,直接使用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)))

python map比for循環快在哪

python map比for循環快在哪

python map比for循環快在哪

從上述的圖像中,可以直觀的看到, 隨著任務復雜度的提高以及數據量的增大,每個循環完成需要的時間也在增加,但是map方式花費的時間明顯比其他兩種要更多。 所以在不需要返回處理結果時,選擇標準for或者列表解析都可以。

因為標準for循環和列表解析方式在循環任務復雜度逐漸提高的情況下,處理時間基本沒有差異。

需要返回結果

這里有三個task, 每個任務將通過增加循環提高時間復雜度

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

然后通過三種循環方式,去依次執行三種任務

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比for循環快在哪

python map比for循環快在哪

python map比for循環快在哪

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

而標準for循環和map方式在循環任務復雜度逐漸提高的情況下,處理時間基本沒有差異。

為什么普遍認為map比for快?

我認為可能跟處理的數據量有關系,大部分場景下,使用者只測試了少量的數據(100W以下,比如這篇文章,就是數據量比較少,導致速度的區別不明顯),在少量的數據集下,我們確實看到了map方式比for循環快,甚至有時候比列表解析還稍微快一點,但是當我們逐漸把數據量增加原來的100倍,這時候差距的凸現出來了。

python map比for循環快在哪

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

以上就是python 為什么map比for循環快的詳細內容,更多關于python map和for循環的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲国产精久久久久久久春色 | 91成人高清在线播放 | 国产成人精品三级 | 美女久久久久久久久久久 | 911精品国产亚洲日本美国韩国 | 特黄大片aaaaa毛片 | 欧美在线二区 | 日批网站在线观看 | 欧美中文字幕一区 | 久久国产成人精品 | 免费观看欧美成人1314色 | 一区二区三区四区在线视频 | 精品欧美一区二区三区四区 | 毛片在线视频在线播放 | 最新国产精品精品视频 | a爱做片免费网站 | 黄色片视频在线免费观看 | 97精品国产91久久久久久久 | 美女巨胸喷奶水gif放肆吧 | 555夜色555亚洲夜色 | 18p爽视频在线观看免费 | 国产午夜精品久久久久免费视 | 青草精品| 日韩在线中文 | 欧美国产人妖另类色视频 | japanese护士日本xx丝袜 | 国产乱子精品免费视观看片 | 国产一区二区三区四区五区六区 | 伊人久久大香线蕉精品哪里 | 国语自产自拍秒拍在线视频 | 国产第一亚洲 | 国产福利乳摇在线播放 | 亚洲一区二区三区四 | 欧美日韩中文一区 | 欧美成人免费午夜全 | 曰本变态bdsm色虐七v | 久久精品嫩草影院免费看 | 九九免费高清在线观看视频 | 草草青青 | 大尺度做爰视频吃奶www | 久久99精品国产免费观看 |