我珍藏的一些好的Python代碼,技巧

最近後臺關注的粉絲越來越多,大部分其實還是偏入門和基礎!


其實Python是入門容易精通難,大家平時要養成記錄的習慣,好的代碼要記錄下來,學會總結,經常翻一翻會有收穫!今天我來分享一些我自己記錄的代碼結構,歡迎拍磚!

01.

簡潔的表達式


我珍藏的一些好的Python代碼,技巧

點評:Python因為簡潔高效而出名,就是因為語法非常簡單,而且內置了很多強大的數據結構:

  • 比如我們可以大量用推導列表來生成很多簡潔的代碼

  • 比如我們可以用if else組合,本來需要2-3行代碼寫的,一行搞定!

02.排序

忽略想起了一句臺詞,“有人的地方就有江湖”,那麼有數組這樣的數據結構一定涉及到排序,取最大值,取最小值。

我珍藏的一些好的Python代碼,技巧

點評:這個heapq庫非常好用,尤其是我們在取一些列表的頭部數據,比如最大幾個,最小几個經常用到,很實用的一招!啥也不說了,趕緊背下來!

03.查詢


排序和查詢都是好基友,長的數據結構裡面(字典,列表)裡面我們一定會有查詢,過濾的需求。有的時候,我們需要從一個很長的列表裡面,找到某一個或者某一類的元素,怎麼辦,很簡單,用高級函數filter :


1).用lambda配合filter過濾

我珍藏的一些好的Python代碼,技巧

點評:lambda是一個非常簡潔的函數表達方式,短小精悍,加上配合filter一起使用,非常漂亮。比如我們通過 字符串裡的startswith內置函數,非常方便的過濾出列表裡面我們需要的數據!

(Python3稍微改一下再filter之外再加一個list,不然生成的是迭代器地址)

我珍藏的一些好的Python代碼,技巧

點評:正則是一個非常不錯的過濾方法,有的時候好的正則頂的上幾十行代碼,精通正則對玩數據分析,數據清洗是必需的技能!

04.

碾平list

有的時候我們會遇到複雜的數據結構,比如列表裡面套列表,層層嵌套,非常麻煩。有幾種方法可以碾平:

1).第一種傳統方法

我珍藏的一些好的Python代碼,技巧

點評:這裡面就是用遞歸來解決的,思路非常簡單清晰,但是遞歸一定要有出口,設計的時候要注意。

2).下面兩種都是高手的寫法:

我珍藏的一些好的Python代碼,技巧.

我珍藏的一些好的Python代碼,技巧

點評:這兩招看上去非常簡單,實際上理解起來很複雜,把很多技巧結合在一行裡面,反正第二種我還能接受,第三種口味太重了,看的有點暈!

05.

帶條件的推導列表

推導列表應該是我最喜歡的一種Pythonic方式,它的演變有很多手法,這幾種都是非常常見的,多讀幾遍,背下來!

我珍藏的一些好的Python代碼,技巧

06.

漂亮的添加字典的方法


設計數據結構的時候,字典是必須的!很多時候我們會用帶下面的字典更新的方法,當然更好的是collections模塊裡面的defaultdict!


我珍藏的一些好的Python代碼,技巧

點評:dict.update還是比較平易近人的,這個dict(dict,**options)用法我第一次看到的時候也是楞了一些,什麼鬼,現在見多了,也就習慣了!

我珍藏的一些好的Python代碼,技巧

還有一塊沒有分享,就是類相關的代碼!限於篇幅,我們後面單獨出一篇,類方面的技巧和好的代碼太多了,因為類本身就涉及到兩個方面:

  • 一個往內:比如Python裡面有大量的魔方函數和內置函數,這裡面有很多技巧,對於不同的應用場景,有些簡潔的用法。

  • 一個往外:類的設計必然涉及到繼承和組合,那麼就一定會牽連到大名鼎鼎的設計模式,好的代碼結構是非常清晰和容易擴展的。

Python入門容易精通難,平時遇到優秀的代碼一定要勤做筆記,不定時拿出來翻一翻,一定對你功力增長大有裨益!


分享到:


相關文章: