歡迎關注 “小白玩轉Python”,發現更多 “有趣”
引言
通常我們認為,使用python需要依賴大量的依賴庫,python本身并不擅長處理任何事情。但恰恰相反,python有大量非常有用的基礎函數,掌握這些使用技巧,可以大大減少我們的時間,使程式設計在python中變得更加容易。
1. Lamba
lambda可以通過使用表達式求值(而不是整個函數)将數學運算應用于任何資料類型。這将會使得程式編寫變得更加簡單,甚至不需要一個完成的函數。甚至可以在一個全局範圍内定義它們,并通過類似函數式的方法進行調用。例如:
mean = lambda x : sum(x) / len(x)
現在我們可以像調用Python中的任何方法一樣調用它:
x = [5, 10, 15, 20]
print(mean(x))
2. Shutil
Shutil子產品是Pythonic中最被低估的工具之一。與本文中的其他子產品一樣,它也包含在标準庫中,并且可以像如下方式輕松導入:
import shutil
Shutil子產品是作業系統上檔案系統 Python 的進階接口。雖然這些調用通常是使用 os 子產品進行的,但很少人知道的是 shutil 子產品,我認為應該更經常地使用它。你有多少次需要用腳本快速地将一個檔案從一個目錄移動到另一個目錄,并且為了完成這項工作而不得不做一大堆冗長乏味的工作?使用Shutil可以輕松解決這個問題:
import shutil
shutil.copyfile('mydatabase.db', 'archive.db')
shutil.move('/src/High.py', '/packages/High')
3.Glob
雖然glob子產品可能沒有shutil那麼酷,或者在一般意義上也沒有Lambda那麼有用,但是該子產品在某些情況下仍然非常有用。glob子產品用于在目錄中搜尋通配符。這意味着它可以用于聚合有關存儲在計算機上的檔案和檔案擴充名的資料。
import glob
glob.glob('*.ipynb')
這将傳回與glob搜尋找到的檔案相對應的檔案名清單。
4.import re
到目前為止,re子產品被嚴重低估了。re中的“R”和“E”是正規表達式的縮寫。re子產品用于用正規表達式解析字元串,并為在Python中處理字元串提供更多選項。
下面兩個例子将讓我們了解正規表達式的魅力:
import re
re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'
5.datetime
時間戳是我們疆場要遇到的,甚至是訓練模型的一個重要特征。使用datetime可以更加友善快捷的處理時間戳。
我們可以構造日期時間類型,并使用典型的日期時間文法和諸如年、月和日之類的屬性。這對于重新格式化、解析和處理資料中日期的各個部分非常有用。
import datetime as dt
now = dt.date.today()
print(now.year)
print(now.month)
6.Zlib
zlib子產品是用來壓縮或者解壓縮資料,以便儲存和傳輸。它是其他壓縮工具的基礎。zlib子產品是使用Python壓縮資料的全面解決方案。這是非常友善的,特别是在完全自動化的情況下。
import zlib
在zlib子產品中,最重要的函數可能是compress()和decompress()。使用這些函數,我們可以看到資料類型的壓縮:
h = " Hello, it is me, you're friend Emmett!"print(len(h))
t = zlib.compress(h)
print(len(t))
z = decompress(t)
print(len(z))
總結
雖然在Pythonic程式設計中經常會出現對依賴關系的高度依賴,但是Python标準庫中也有一些非常簡潔的工具!許多這樣的工具可以通過為複雜的任務建立一個與程式設計語言本身打包在一起的進階接口來快速地節省大量的時間。而且也不需要pip安裝任何軟體包,十分的友善!
本文隻是簡單的介紹了這些基礎函數,如果大家感興趣,可以深入了解它們,感受python的魅力!
· END ·
HAPPY LIFE