最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

提升Python程序性能的7個習慣

 更新時間:2019年04月14日 10:30:09   作者:學好Python吧  
這篇文章主要介紹了提升Python程序性能的7個習慣,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

掌握一些技巧,可盡量提高Python程序性能,也可以避免不必要的資源浪費。

1、使用局部變量

盡量使用局部變量代替全局變量:便于維護,提高性能并節(jié)省內存。

使用局部變量替換模塊名字空間中的變量,例如 ls = os.linesep。一方面可以提高程序性能,局部變量查找速度更快;另一方面可用簡短標識符替代冗長的模塊變量,提高可讀性。

2、減少函數調用次數

對象類型判斷時,采用isinstance()最優(yōu),采用對象類型身份(id())次之,采用對象值(type())比較最次。

判斷變量num是否為整數類型

type(num) == type(
0
) 
#調用三次函數
type(num) 
is
 type(
0
) 
#身份比較
isinstance(num,(
int
)) 
#調用一次函數

不要在重復操作的內容作為參數放到循環(huán)條件中,避免重復運算。

#每次循環(huán)都需要重新執(zhí)行l(wèi)en(a)
while
 i < len(a):
 statement
#len(a)僅執(zhí)行一次
m = len(a)
while
 i < m:
 statement

如需使用模塊X中的某個函數或對象Y,應直接使用from X import Y,而不是import X; X.Y。這樣在使用Y時,可以減少一次查詢(解釋器不必首先查找到X模塊,然后在X模塊的字典中查找Y)。

3、采用映射替代條件查找

映射(比如dict等)的搜索速度遠快于條件語句(如if等)。Python中也沒有select-case語句。

#if查找
if
 a == 
1
:
 b = 
10
elif
 a == 
2
:
 b = 
20
...
#dict查找,性能更優(yōu)
d = {
1
:
10
,
2
:
20
,...}
b = d[a]

4、直接迭代序列元素

對序列(str、list、tuple等),直接迭代序列元素,比迭代元素的索引速度要更快。

a = [
1
,
2
,
3
]
#迭代元素
for
 item 
in
 a:
print
(item)
#迭代索引
for
 i 
in
 range(len(a)):
print
(a[i])

5、采用生成器表達式替代列表解析

列表解析(list comprehension),會產生整個列表,對大量數據的迭代會產生負面效應。

而生成器表達式則不會,其不會真正創(chuàng)建列表,而是返回一個生成器,在需要時產生一個值(延遲計算),對內存更加友好。

#計算文件f的非空字符個數
#生成器表達式
l = sum([len(word) 
for
 line 
in
 f 
for
 word 
in
 line.split()])
#列表解析
l = sum(len(word) 
for
 line 
in
 f 
for
 word 
in
 line.split())

6、先編譯后調用

使用eval()、exec()函數執(zhí)行代碼時,最好調用代碼對象(提前通過compile()函數編譯成字節(jié)碼),而不是直接調用str,可以避免多次執(zhí)行重復編譯過程,提高程序性能。

正則表達式模式匹配也類似,也最好先將正則表達式模式編譯成regex對象(通過re.complie()函數),然后再執(zhí)行比較和匹配。

7、模塊編程習慣

模塊中的最高級別Python語句(沒有縮進的代碼)會在模塊導入(import)時執(zhí)行(不論其是否真的必要執(zhí)行)。因此,應盡量將模塊所有的功能代碼放到函數中,包括主程序相關的功能代碼也可放到main()函數中,主程序本身調用main()函數。

可以在模塊的main()函數中書寫測試代碼。在主程序中,檢測name的值,如果為'main'(表示模塊是被直接執(zhí)行),則調用main()函數,進行測試;如果為模塊名字(表示模塊是被調用),則不進行測試。

總結

以上所述是小編給大家介紹的提升Python程序性能的7個習慣,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • pandas取dataframe特定行列的實現(xiàn)方法

    pandas取dataframe特定行列的實現(xiàn)方法

    大家在使用Python進行數據分析時,經常要使用到的一個數據結構就是pandas的DataFrame,本文介紹了pandas取dataframe特定行列的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 以文檔處理為例講解豆包API調用教程(Python)

    以文檔處理為例講解豆包API調用教程(Python)

    這篇文章主要介紹了如何在Linux服務器上配置和使用豆包大模型的API,通過API處理200萬字的文檔,展現(xiàn)了技術的發(fā)展和應用,需要的朋友可以參考下
    2025-01-01
  • 對web.py設置favicon.ico的方法詳解

    對web.py設置favicon.ico的方法詳解

    今天小編就為大家分享一篇對web.py設置favicon.ico的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python文件操作JSON CSV TSV Excel和Pickle文件序列化

    Python文件操作JSON CSV TSV Excel和Pickle文件序列化

    這篇文章主要為大家介紹了Python文件操作之JSON、CSV、TSV、Excel和Pickle文件序列化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Python讀取串口數據的實現(xiàn)方法

    Python讀取串口數據的實現(xiàn)方法

    本文主要介紹了Python讀取串口數據的實現(xiàn)方法,可以使用pySerial庫來讀取串口數據,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • pandas如何修改特定的值

    pandas如何修改特定的值

    這篇文章主要介紹了pandas如何修改特定的值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • pandas實現(xiàn)excel中的數據透視表和Vlookup函數功能代碼

    pandas實現(xiàn)excel中的數據透視表和Vlookup函數功能代碼

    今天小編就為大家分享一篇pandas實現(xiàn)excel中的數據透視表和Vlookup函數功能代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python關于集合的知識案例詳解

    python關于集合的知識案例詳解

    這篇文章主要介紹了python關于集合的知識,包括集合的基本信息和集合的基本操作,通過案例詳解給大家介紹的非常詳細,需要的朋友可以參考下
    2021-05-05
  • Python loguru日志庫之高效輸出控制臺日志和日志記錄

    Python loguru日志庫之高效輸出控制臺日志和日志記錄

    這篇文章主要介紹了python loguru日志庫之高效輸出控制臺日志和日志記錄的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • python?如何獲取文件夾中的全部文件

    python?如何獲取文件夾中的全部文件

    在神經網絡準備訓練集的時候,經常需要從文件夾中讀取全部圖片。經常遇到的有兩種方式,一種是os.listdir()另一種是glob,本文結合示例代碼對python獲取文件夾中全部文件講解的非常詳細,需要的朋友參考下吧
    2023-01-01

最新評論

平利县| 达日县| 墨玉县| 安龙县| 广灵县| 华阴市| 昌江| 苏尼特右旗| 内丘县| 沛县| 德格县| 巴林左旗| 洛阳市| 襄樊市| 天等县| 永兴县| 荆门市| 神池县| 唐海县| 棋牌| 隆德县| 沙坪坝区| 安顺市| 阿巴嘎旗| 水富县| 平昌县| 玉环县| SHOW| 嵊泗县| 阿图什市| 中江县| 利川市| 定远县| 洱源县| 北京市| 江阴市| 青神县| 房产| 海晏县| 绥芬河市| 黄平县|