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

如何使Python代碼運行起來速度飛快?

譯文
開發 后端
本文解釋了優化和加速Python代碼的幾個技巧和竅門。

[[404532]]

【51CTO.com快譯】Python是開發人員當中流行的編程語言之一。它應用廣泛,無論是Web開發還是機器學習。Python大受歡迎的原因有很多,比如社區支持、出色的庫、廣泛用于機器學習和大數據以及簡單的語法。

盡管有這么多優點,Python還是有一個缺點:速度慢。作為一種解釋性語言,Python的速度不如其他編程語言。不過,我們可以用幾個技巧來克服這個問題。

本文將分享幾個Python技巧,我們可以用來使Python代碼運行得比平時更快。

1. 合適的算法和數據結構

每個數據結構對運行時間都有顯著影響。Python有很多內置的數據結構,比如列表、元組、集和字典等。大多數人在所有情況下都使用列表數據結構。

在Python中,集和字典擁有O(1)查詢性能,因為它們使用哈希表。在以下情況下,您可以使用集和字典而不是列表:

  • 您在集合中沒有重復項。
  • 您需要在集合中重復搜索項。
  • 集合含有大量項。

您可以在這里看到Python中不同數據結構的時間復雜度:https://wiki.python.org/moin/TimeComplexity。

該頁記錄了目前CPython中各種操作的時間復雜度(又名“Big O”或“Big Oh”)。

2. 使用內置函數和庫

Python的內置函數是加速代碼的最佳方式之一。您必須在需要時使用內置的Python函數。這些內置函數經過了充分測試和優化。

這些內置函數之所以很快,是由于Python的內置函數(比如min、max、all和map等)都是用C語言實現的。

您應該使用這些內置函數,而不是手動編寫有助于更快執行代碼的函數。

例子:

  1. newlist = [] 
  2. for word in wordlist: 
  3.     newlist.append(word.upper()) 

編寫該代碼的一種更好的方式是:

  1. newlist = map(str.upper, wordlist) 

這里我們使用內置的map函數,它是用C編寫的。因此,它比使用循環要快得多。

3. 使用多個賦值

如果您想為多個變量賦值,不要逐行賦值。Python有一種優雅且更好的方式為多個變量賦值。

例子:

  1. firstName = "John" 
  2. lastName = "Henry" 
  3. city = "Manchester" 

為這些變量賦值的一種更好的方式如下:

  1. firstName, lastName, city = "John""Henry""Manchester" 

變量的這種賦值比上一種賦值簡潔且優雅得多。

4. 偏愛列表推導而非循環

列表推導是一種優雅且更好的方式,只需一行代碼即可基于現有列表的元素創建新列表。

與定義一個空列表并為該空列表添加元素相比,列表推導是一種更具Python特色的創建新列表的方式。

列表推導的另一個優點是,它比使用append方法為Python 列表添加元素更快。

例子:

  1. newlist = [] 
  2. for i in range(1, 100): 
  3.     if i % 2 == 0: 
  4.         newlist.append(i**2) 

使用列表推導的一種更好的方式:

  1. newlist = [i**2 for i in range(1, 100) if i%2==0] 

如果使用列表推導,代碼看起來更簡潔。

5. 適當的導入

您應該避免導入不必要的模塊和庫,除非需要它們。可以指定模塊名稱而不是導入完整的庫。

導入不必要的庫會導致代碼性能下降。

例子:

假設您需要求一個數的平方根。別用這個:

  1. import math 
  2. value = math.sqrt(50) 

而是用這個:

  1. from math import sqrt 
  2. value = sqrt(50) 

6. 字符串連接

在Python中,我們使用“+”運算符連接字符串。但是在Python中連接字符串的另一種方式是使用join方法。

join方法是一種更具Python特色的連接字符串的方式,它也比使用“+”運算符連接字符串更快。

join() 方法更快的原因是,“+”運算符創建一個新字符串,然后在每一步復制舊字符串,而join() 方法不是這么工作的。

例子:

  1. output = "Programming" + "is" + "fun 

使用join方法:

  1. output = " ".join(["Programming" , "is""fun"]) 

這兩種方法的輸出一樣。唯一的區別是,join()方法比“+”運算符快。

結束語

這就是本文的全部內容。本文討論了可用于加快代碼運行速度的幾個技巧。這些技巧尤其適用于爭分奪秒的競賽型編程。

原文標題:How to Make Python Code Run Incredibly Fast,作者:Pralabh Saxena

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2024-02-21 21:19:18

切片Python語言

2024-03-11 15:47:11

RustPython代碼

2022-03-30 14:23:48

LibreOfficOffice開源

2021-02-27 21:45:22

程序代碼函數

2010-02-06 14:59:37

Android程序

2024-09-30 10:09:52

2019-12-23 08:57:50

Python代碼單線程

2018-05-17 10:05:24

運行iPadPython

2020-09-02 14:00:05

Python代碼腳本

2011-08-05 10:55:13

重裝系統

2018-08-02 16:17:34

Python 開發編程語言

2009-08-11 09:10:26

Windows 7系統提速

2019-10-17 09:57:08

Python設計電腦

2022-10-08 00:03:00

Debug技巧調試

2018-09-19 15:46:51

編程語言Python編譯器

2023-03-05 22:30:25

JavaCPU

2022-03-15 13:09:05

JavaScript編程語言代碼

2022-04-27 09:24:22

前端代碼速度

2019-05-21 14:18:09

PygamePython編程語言

2024-09-27 08:35:33

數組JavaScript性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美激情国产综合久久久 | 美女久久久久久久久 | 国产乱码久久久久久 | 免费观看一级特黄欧美大片 | 成人在线视频观看 | 日韩精品一二三区 | 国产精品久久久久久久久久 | 国产乱码精品一区二区三区忘忧草 | 国产精品欧美一区二区三区不卡 | 亚洲一区二区视频在线播放 | 国产色99精品9i | 亚洲精品视频在线播放 | 亚洲视频一区在线观看 | 国产精品不卡一区 | 国产特一级黄色片 | 午夜精品福利视频 | 逼逼视频 | 日韩一区二区三区视频 | 国产成人免费视频网站视频社区 | 欧区一欧区二欧区三免费 | 欧美99 | 欧美精品在线观看 | 色视频成人在线观看免 | 国产一区二区三区四区 | 羞羞网站免费 | 欧美日韩专区 | 日韩欧美亚洲 | 狠狠色综合久久丁香婷婷 | 亚洲精品一区二区三区在线 | 黄色在线播放视频 | 国产精品久久久久久久久图文区 | 日韩成人免费 | 久久久久久久亚洲精品 | 亚洲一区二区三区四区视频 | 香蕉视频91 | 精品国产乱码久久久久久88av | 亚洲国产第一页 | 久久久久久久久99 | 91av在线免费看 | 色999日韩| 噜噜噜噜狠狠狠7777视频 |