剛纔看到一位朋友談到如何寫出高逼格的文章,想了想確實有道理。因此特地弄一張高清的圖片加上高逼格的文字。segmentfault
學習Python和個人工做關係並不大,但這不重要,由於喜歡因此堅持。
打籃球他們由於不想和我一夥而爭論,徹底不顧個人感覺,但這不重要,由於喜歡因此堅持。
寫博客很費時間,有時候想寫又沒什麼可寫很痛苦,但這不重要,由於喜歡因此堅持。
寫博客排版很費時,終於碰到segmentfault,又產生了寫寫寫的慾望。【順便贊一下】數組
繼續前面兩篇,我我的以爲這篇是乾貨最多的,至少我從中學到了很多東西。廢話少說,開始吧!app
對一個列表排序最簡單的方法就是使用sorted(list)函數。
前面咱們說過list.sort(),這是列表的一個方法。它直接做用於列表,而且沒有返回值。有時候咱們不想改變列表自己,只是但願返回一個新的列表,那麼就須要用到sorted(list)函數。函數
a = [5, 1, 4, 3] print sorted(a) ## [1, 3, 4, 5] print a ## [5, 1, 4, 3]
google 課程中強烈推薦使用函數sorted(list),而不是list的方法list.sort().
sorted(list)可使用參數,好比reverse=Ture/false,默認false[升序排列]學習
strs = ['aa', 'BB', 'zz', 'CC'] print sorted(strs) ## ['BB', 'CC', 'aa', 'zz'] (case sensitive) print sorted(strs, reverse=True) ## =True,改成降序排列
sorted(list)可使用可選的key參數指定一個函數.該函數會以每一個元素爲參數。
排序時,列表中的元素會經過函數進行處理,並按照返回值進行排序。ui
strs = ['ccc', 'aaaa', 'd', 'bb'] #會按照元素的長度進行升序排列 print sorted(strs, key=len) ## ['d', 'bb', 'ccc', 'aaaa'] #按照元素的小寫進行排序 strs = ['BB','aa','CC','zz'] print sorted(strs, key=str.lower) ## ['aa', 'BB', 'CC', 'zz'] #key後面能夠是自定義函數 def MyFn(s): return s[-1] ## Now pass key=MyFn to sorted() to sort by the last letter: print sorted(strs, key=MyFn) ## ['wa', 'zb', 'xc', 'yd'] ## lambda 表達式 strs = [1,2,-5,-435] #按照返回值排序 print sorted(strs,key=lambda str:str*(-1)) #[2, 1, -5, -435]
元組【Tuples】google
元組是固定尺寸的元素的集合。在Python扮演一種"結構體"的角色spa
元組與列表相似,可使用len()返回長度,使用[]訪問元素,使用for,in等等。code
tuple = (1, 2, 'hi') print len(tuple) ## 能夠返回長度 print tuple[2] ## 經過[]訪問元素 tuple[2] = 'bye' ## 元組一旦建立,不可以對元素進行修改 tuple = (1, 2, 'bye') ## 能夠從新建立
列表推導式【List Comprehensions】排序
列表推導式是一種簡潔的方式,能夠將表達式擴展到整個列表。
語法: [ expr for var in list ]
nums = [1, 2, 3, 4] squares = [ n * n for n in nums ] ## [1, 4, 9, 16] #建立一個所有都爲0的二維數組 matrix = [[0 for col in range(ncols)] for row in range(nrows)]
能夠在[ expr for va in list ]的右邊增長if條件進行過濾
nums = [2,8,1,6] small = [n for n in nums if n <= 2 ] ## [2,1] ## Select fruits containing 'a', change to upper case fruits = ['apple', 'cherry', 'bannana', 'lemon'] afruits = [ s.upper() for s in fruits if 'a' in s ]