日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何使Python代碼運(yùn)行起來速度飛快?

Python是開發(fā)人員當(dāng)中流行的編程語言之一。它應(yīng)用廣泛,無論是Web開發(fā)還是機(jī)器學(xué)習(xí)。Python大受歡迎的原因有很多,比如社區(qū)支持、出色的庫、廣泛用于機(jī)器學(xué)習(xí)和大數(shù)據(jù)以及簡單的語法。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蕉嶺,十多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

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

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

1. 合適的算法和數(shù)據(jù)結(jié)構(gòu)

每個數(shù)據(jù)結(jié)構(gòu)對運(yùn)行時間都有顯著影響。Python有很多內(nèi)置的數(shù)據(jù)結(jié)構(gòu),比如列表、元組、集和字典等。大多數(shù)人在所有情況下都使用列表數(shù)據(jù)結(jié)構(gòu)。

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

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

您可以在這里看到Python中不同數(shù)據(jù)結(jié)構(gòu)的時間復(fù)雜度:https://wiki.python.org/moin/TimeComplexity。

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

2. 使用內(nèi)置函數(shù)和庫

Python的內(nèi)置函數(shù)是加速代碼的最佳方式之一。您必須在需要時使用內(nèi)置的Python函數(shù)。這些內(nèi)置函數(shù)經(jīng)過了充分測試和優(yōu)化。

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

您應(yīng)該使用這些內(nèi)置函數(shù),而不是手動編寫有助于更快執(zhí)行代碼的函數(shù)。

例子:

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

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

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

這里我們使用內(nèi)置的map函數(shù),它是用C編寫的。因此,它比使用循環(huán)要快得多。

3. 使用多個賦值

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

例子:

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

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

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

變量的這種賦值比上一種賦值簡潔且優(yōu)雅得多。

4. 偏愛列表推導(dǎo)而非循環(huán)

列表推導(dǎo)是一種優(yōu)雅且更好的方式,只需一行代碼即可基于現(xiàn)有列表的元素創(chuàng)建新列表。

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

列表推導(dǎo)的另一個優(yōu)點是,它比使用append方法為Python 列表添加元素更快。

例子:

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

使用列表推導(dǎo)的一種更好的方式:

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

如果使用列表推導(dǎo),代碼看起來更簡潔。

5. 適當(dāng)?shù)膶?dǎo)入

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

導(dǎo)入不必要的庫會導(dǎo)致代碼性能下降。

例子:

假設(shè)您需要求一個數(shù)的平方根。別用這個:

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

而是用這個:

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

6. 字符串連接

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

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

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

例子:

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

使用join方法:

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

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

結(jié)束語

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


本文題目:如何使Python代碼運(yùn)行起來速度飛快?
文章轉(zhuǎn)載:http://m.5511xx.com/article/copdpsd.html