成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

加速Python列表和字典,讓你代碼更加高效

開發 后端
今天,我們將討論Python中的優化技術。在本文中,您將了解如何通過避免在列表和字典中進行重新計算來加快代碼的速度。

今天,我們將討論Python中的優化技術。在本文中,您將了解如何通過避免在列表和字典中進行重新計算來加快代碼的速度。

我們先編寫一個裝飾器函數來計算函數的執行時間,方便測驗不同代碼的速度:

  1. import functools 
  2. import time 
  3.  
  4. def timeit(func): 
  5.     @functools.wraps(func) 
  6.     def newfunc(*args, **kwargs): 
  7.         startTime = time.time() 
  8.         func(*args, **kwargs) 
  9.         elapsedTime = time.time() - startTime 
  10.         print('function - {}, took {} ms to complete'.format(func.__name__, int(elapsedTime * 1000))) 
  11.     return newfunc 

一、避免在列表中重新評估

1. 在循環內

代碼:

  1. @timeit 
  2. def append_inside_loop(limit): 
  3.     nums = [] 
  4.     for num in limit: 
  5.         nums.append(num) 
  6.  
  7. append_inside_loop(list(range(1, 9999999))) 

在上面的函數中.append每次通過循環重新計算的函數引用。執行后,上述函數所花費的總時間:

  1. o/p - function - append_inside_loop, took 529 ms to complete 

2. 在循環外

代碼:

  1. @timeit 
  2. def append_outside_loop(limit): 
  3.     nums = [] 
  4.     append = nums.append 
  5.     for num in limit: 
  6.         append(num) 
  7.  
  8. append_outside_loop(list(range(1, 9999999))) 

在上面的函數中,我們對nums.append在循環外部估值,并在循環內部使用append為變量。總時間:

  1. o/p - function - append_outside_loop, took 328 ms to complete 

如您所見,當我們在​for循環外部追加為一個本地變量,這將花費更少的時間,可以將代碼加速201 ms。​

二、避免在字典中重新求值

1. 在循環內部

代碼:

  1. @timeit 
  2. def inside_evaluation(limit): 
  3.     data = {} 
  4.     for num in limit: 
  5.         data[num] = data.get(num, 0) + 1 
  6.  
  7. inside_evaluation(list(range(1, 9999999))) 

上述函數所花費的總時間:

  1. o/p - function - inside_evaluation, took 1400 ms to complete 

2. 在循環外

代碼:

  1. @timeit 
  2. def outside_evaluation(limit): 
  3.     data = {} 
  4.     get = data.get 
  5.     for num in limit: 
  6.         data[num] = get(num, 0) + 1 
  7.  
  8.  
  9. outside_evaluation(list(range(1, 9999999))) 

上述函數所花費的總時間:

  1. o/p - function - outside_evaluation, took 1189 ms to complete 

如你所見,我們這里的代碼速度提高了211毫秒。

英文原文:https://dev.to/sharmapacific/speedup-python-list-and-dictionary-12kd

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-05-21 08:53:12

Python技術代碼

2024-06-13 12:24:06

C++開發代碼

2010-05-20 18:27:10

IIS服務器

2010-09-09 16:39:24

2009-06-09 10:13:46

賬號設置網絡控制

2017-04-20 12:56:46

原型設計工具

2017-12-07 10:09:55

數據中心資產審計

2023-11-23 15:28:38

2015-10-27 10:12:26

數據中心高效數據中心

2023-07-25 16:14:51

Python技巧

2025-03-11 08:30:00

Pythonretrying代碼

2020-08-21 09:52:03

數據中心IT技術

2018-01-30 10:28:29

數據中心云計算公共云

2024-04-26 11:54:10

Pygments代碼Pytho

2013-03-25 09:41:20

PythonCython

2020-09-02 14:00:05

Python代碼腳本

2009-10-13 10:12:10

ScalaTestScala

2018-02-08 11:30:45

邊緣計算物聯網應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 国产伦精品一区二区三区高清 | 黄网站免费在线看 | 天天色图 | 九九九精品视频 | 日韩欧美成人精品 | 欧美日韩一区二区三区在线观看 | 91九色视频在线 | 国产高清视频在线 | 欧美国产91 | 91五月婷蜜桃综合 | av喷水| 日韩成人中文字幕 | 一级黄色裸片 | 亚洲一区二区三区免费 | 国产欧美精品一区二区三区 | 国产高清精品在线 | 国产精品视频一区二区三区不卡 | 国产精品污www在线观看 | 99re在线视频 | 久久综合一区 | 精品中文字幕一区二区三区 | 精品视频99 | 在线一区观看 | 天天色天天射天天干 | 久久久久国产一区二区三区不卡 | 欧美日韩综合一区 | 欧美日韩一区二区在线 | 天堂亚洲 | 人人爽人人草 | 亚洲手机在线 | 国产成人99久久亚洲综合精品 | 亚洲导航深夜福利涩涩屋 | 成年人的视频免费观看 | 精品九九九 | 亚洲综合色丁香婷婷六月图片 | 黑人精品欧美一区二区蜜桃 | 中文字幕中文字幕 | 日韩视频在线免费观看 | 欧美在线观看一区 | 毛片免费在线观看 |