20 useful Python tips and tricks you should know. 以下為譯文,,旨在幫助同學們更好地學習和應(yīng)用Python,。 Python作為當下較為流行的通用編程語言,主要用于數(shù)據(jù)科學和機器學習,、許多領(lǐng)域的科學計算,、后端網(wǎng)絡(luò)開發(fā)、移動和桌面應(yīng)用等,。哪些知名企業(yè)在Python:Google, Dropbox, Facebook, Mozilla, IBM, Quora, Amazon, Spotify, NASA, Netflix, Reddit等等,。 Python不僅免費、開源,,它還有一個由程序員和其他用戶組成的龐大、專注,、友好的社區(qū),。 Python在設(shè)計上堅持清晰化一的風格,,語法設(shè)計上更是側(cè)重于簡單、可讀和優(yōu)雅,。Python的作者有意的設(shè)計限制性很強的語法,,使得不好的編程習慣都不能通過編譯。其中很重要的一項就是Python的縮進規(guī)則,。本文介紹20個你可能用到的Python技巧和竅門,。 01 Python之禪“Python 之禪”又稱PEP 20,是用Tim Peters編寫的一個小文本,,代表了設(shè)計和使用Python的指導(dǎo)原則,。你可以在Python網(wǎng)站上找到這個文本,也可以在終端(控制臺)或Jupyter notebook中用一條語句獲取它: 02 鏈式賦值如果需要多個變量引用同一個對象,可以使用鏈式賦值: 是不是很符合邏輯,又很優(yōu)雅呢,? 03 鏈式比較通過鏈接比較運算符,,可以將多個比較合并到一個Python表達式中,。如果所有的比較都正確或錯誤,該表達式將返回true,,否則返回false: 這類似于(2 < x)和(x ≤ 8)和(6 < x)和(x ≤ 8),,但更緊湊,,只需對x進行一次評估。 要知道這種編碼形式可是合法的: 你還可以鏈接兩個以上的比較: 04 多重賦值你可以使用元組解包在一條語句中分配多個變量: 請注意,,第一條語句中的2,4,8等同于元組(2,4,8),。 05 更高級的多重賦值要知道Python能做到的遠不止普通的多重賦值。賦值的左側(cè)和右側(cè)不需要相同數(shù)量的元素: 這種情況下,x取第一個值(2 ),因為它是第一個出現(xiàn)的,。z是最后一個,,取最后一個值(8)。y取列表中的所有其他值,,因為它有星號(*y),。 06 交換變量你可以在應(yīng)用多個賦值時以簡潔優(yōu)雅的方式交換任意兩個變量,而無需引入第三個變量: 07 合并字典合并兩個或更多字典的方法便是將它們放到一個新的字典中: 08 連接字符串如果需要連接多個字符串,,最終在它們之間有相同的字符或字符組,可以使用str.join()方法: 09 高級遍歷如果你想要遍歷一個序列,并且需要序列元素和相應(yīng)的索引,,那么應(yīng)該可以使用enumerate: 在每次遍歷中,你將獲得一個元組,,其中包含序列的索引和相應(yīng)元素,。 10 反向遍歷若想反向遍歷序列,可以使用reversed: 11 元素聚合如果要從幾個序列中聚合元素,應(yīng)該使用zip: 可以通過遍歷獲得zip對象,或者將其轉(zhuǎn)換為列表或元組,。 12 矩陣轉(zhuǎn)置雖然在處理矩陣時通常會使用numpy(或類似的庫),,但是使用zip同樣可以實現(xiàn)矩陣的轉(zhuǎn)置: 13 唯一值如果元素的順序不重要,,想從列表中刪除重復(fù)項,可以通過將其轉(zhuǎn)換為集合來獲得唯一值: 14 序列排序默認情況下,序列按其第一個元素排序: 但是,如果要根據(jù)第二個(或其他)元素對它們進行排序,,可以使用key鍵和適當?shù)膌ambda函數(shù)作為相應(yīng)的參數(shù): 如果想獲得相反的順序,,也可以使用相同的方法: 15 字典排序可以使用類似的方法對獲得的字典的鍵值元組進行排序,。items()方法: 他們是根據(jù)鍵排序的,。如果希望根據(jù)它們的值排序,則應(yīng)該指定對應(yīng)于key的參數(shù),,并最終反轉(zhuǎn): 16 格式化raw字符串PEP 498和Python 3.6引入“格式化字符串”(f字符串),。你可以在這樣的字符串中嵌入表達式,。要知道字符串可以直接用作raw字符串和格式化字符串使用,只需加上兩個前綴:fr。 17 獲取當前日期和時間Python有一個內(nèi)置的模塊datetime,可用于處理日期和時間,。一種方法便是now(),,返回當前日期和時間: 18 獲取最大/最小元素的索引Python并未提供直接獲取列表或元組中最大或最小元素索引的函數(shù),。幸運的是,有兩種優(yōu)雅的方法可以做到這一點: 如果有兩個或多個元素具有最大值,此方法將返回最后一個元素的索引: 如果想獲取第一次出現(xiàn)的索引,需要稍微更改一下前面的語句: 另一種方法可能更優(yōu)雅呦! 要找到最小元素的索引,請使用函數(shù)min,,記得不是max,。 19 獲得笛卡爾積內(nèi)置模塊itertools提供了許多潛在有用的類。其中product函數(shù)便可用于獲得笛卡爾乘積: 20 矩陣乘法操作符PEP 465和Python 3.5引入了用于矩陣乘法的專用運算符@??梢允褂胢atmul,、rmatmul和imatmul方法為你的類實現(xiàn)它。要知道使用該操作符進行向量或矩陣相乘非常優(yōu)雅: 總結(jié)你雖然已經(jīng)看到20條Python技巧和竅門,讓代碼變得有趣而優(yōu)雅,。但還有很多其他語言特征值得去探索,。 Happy coding! |
|