
大家好,我是程式員G哥,都說拳不離手,曲不離口,學習程式設計其實就跟練武一樣,每個小白成長為大俠都需要經過不斷的磨練,打怪更新,不斷的增長經驗值。而GitHub就是一個大的寶庫,裡面有各種武林秘籍,讓你吸取能量!
今天G哥在逛GitHub的時候,發現了一份非常不錯的學習Python的資源。一共有223個小例子,每個60秒就能看完,一口一個,短小精悍,非常适合學習修煉。
作者Jack非常厲害,整理了一共有8個章節,每個章節都有大小,數量不等的小巧的例子,從Python基礎知識,字元串,正則,到進階的生成器,疊代器,難懂的裝飾器,常見的檔案處理,正則使用,到算法的入門,一應俱全。目前已經收獲了3900顆星,我們一起來看一下。
元素都為真
接受一個可疊代對象,如果可疊代對象的所有元素都為真,那麼傳回
True
,否則傳回
False
3 元素至少一個為真
接受一個可疊代對象,如果可疊代對象裡至少有一個元素為真,那麼傳回
True
,否則傳回
False
ascii展示對象
調用對象的 _repr_ 方法,獲得該方法的傳回值,如下例子傳回值為字元串
轉為字典
建立資料字典
枚舉對象
傳回一個可以枚舉的對象,該對象的next()方法将傳回一個元組。
過濾器
在函數中設定過濾條件,疊代元素,保留傳回值為
True
的元素:
動态擷取對象屬性
擷取對象的屬性
上面的都是一些簡單的招式,我們再來看一些進階的總結的不錯的招式,看完之後一定讓你功力大漲!
建立屬性的兩種方式
傳回 property 屬性,典型的用法:
使用python裝飾器,實作與上完全一樣的效果代碼:
聚合疊代器
建立一個聚合了來自每個可疊代對象中的元素的疊代器:
nonlocal用于内嵌函數中
關鍵詞
nonlocal
常用于函數嵌套中,聲明變量
i
為非局部變量;如果不聲明,
i+=1
表明
i
為函數
wrapper
内的局部變量,因為在
i+=1
引用(reference)時,i未被聲明,是以會報
unreferenced variable
的錯誤。
不用else和if實作電腦
這種設計思路非常巧妙,在實際的生産環境中經常會用到,非常簡潔,跟代碼大全裡面的表查詢有異曲同工之妙。
全展開,如何把這樣的嵌套數組展開
例如[[[1,2,3],[4,5]]],這個題目其實也是我曾經面試的一個題目
如何完全展開成一維的。這個小例子實作的
flatten
是遞歸版,兩個參數分别表示帶展開的數組,輸出數組。
groupby單字段分組
天氣記錄:
a = [{'date': '2019-12-15', 'weather': 'cloud'},
{'date': '2019-12-13', 'weather': 'sunny'},
{'date': '2019-12-14', 'weather': 'cloud'}]
按照天氣字段
weather
分組彙總:
輸出結果:
cloud
{'date': '2019-12-15', 'weather': 'cloud'}
{'date': '2019-12-14', 'weather': 'cloud'}
sunny
{'date': '2019-12-13', 'weather': 'sunny'}
itemgetter和key函數
注意到
sort
和
groupby
所用的
key
函數,除了
lambda
寫法外,還有一種簡寫,就是使用
itemgetter
:
結果:
cloud
{'date': '2019-12-15', 'weather': 'cloud'}
{'date': '2019-12-14', 'weather': 'cloud'}
sunny
{'date': '2019-12-13', 'weather': 'sunny'}
統計異常出現次數和時間的裝飾器
寫一個裝飾器,統計某個異常重複出現指定次數時,經曆的時長。
xls批量轉換成xlsx
上面的Python技巧真的是令人眼花缭亂,讓我學習興趣大漲!看完之後,趕緊動手撸一遍。光看是沒有用的,一定要把這些招式敲一邊,然後動手運作一下,調試一些,加深印象。
了解了消化了,才會吸引為自己的,功力才能大漲。也不枉小編熬夜編寫,逛了好久才找到的這份寶典。
其實Python是入門容易精通難,啥也不說了,趕緊練吧!如果對你有用,留言區吱一聲。
更多的短小精悍的小例子,檢視連結:
https://github.com/jackzhenguo/python-small-examples
近期熱門:牆裂推薦!B站上的Python學習資源
隻要三步,帶你用Python換臉趣味!用Python竟然還能做一個文字套娃隻要三步,帶你用Python換臉一行Python代碼寫的遊戲,我能這樣玩一天!讓你縱橫 GitHub 的五大神器
程式員GitHub
由菜鳥學Python原班人馬打造的公衆号【程式員GitHub】開始啦!
專注于分享GitHub上有趣的資源包括
Python,Java,Go語言
前端學習等優質的學習資源
分享程式員圈的新鮮趣事,熱門幹貨,職場感悟
點的“在看”,否則就看不到我了555