国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python map比for循環快在哪

python map比for循環快在哪

2020-09-22 00:01Sight Tech. Python

這篇文章主要介紹了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)))

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 res

	def 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循環的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/sight-tech/p/12987276.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产成人精品一区二区三区网站观看 | 亚洲精品无 | 亚洲国产一区二区三区 | 国产精品久久久久国产a级 九九在线精品视频 | 骚视频在线观看 | 国产精品影视在线观看 | 在线观看亚洲一区二区三区 | 97视频免费在线观看 | 午夜av免费 | 欧美大片一区 | 黄色免费视频 | 成年人毛片在线观看 | 一区二区三区在线视频播放 | 久久精品国产亚洲精品 | 欧美激情五月 | 久久久精品免费视频 | 色九色| 亚洲第一成人在线 | 激情毛片| 亚洲欧美日韩精品久久亚洲区 | 中文字幕在线观看一区二区三区 | 91国产视频在线 | 欧洲精品久久久久毛片完整版 | 日韩在线| 日韩一区二区影视 | 51ⅴ精品国产91久久久久久 | 国产综合区 | 小视频在线 | 美女天堂 | 国产成人精品a视频一区www | 成人精品一区二区 | 欧美久久综合 | 人人爱超碰 | 蜜桃免费视频 | 国产乱xxxxx97国语对白 | 国产精品久久久久久吹潮 | 欧美日韩一区精品 | 中文字幕在线观看 | 国产精品一区二区三区四区 | 国产精品美女久久久久久免费 | 欧美日韩在线精品 |