map map函數(shù)接收兩個參數(shù),一個是函數(shù),一個是Iterable,map將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的Iterator返回。 輸出結(jié)果: 可以看出,map讓函數(shù)func作用于列表的每一項,使列表的每一項都被函數(shù)func執(zhí)行一次,即列表的每一項都進行平方。其返回值是map類型。 reduce reduce函數(shù)必須接收兩個參數(shù),把一個函數(shù)作用在一個序列[x1, x2, x3, ...]上,然后再把結(jié)果繼續(xù)和序列的下一個元素做累積計算。 和map不同,雖然reduce也是作用于每個元素,但是reduce的作用結(jié)果要用在下次和另一個元素做累積計算。 map和reduce的結(jié)合使用 輸出結(jié)果: 可以將字符串類型轉(zhuǎn)換為int類型 filter filter函數(shù)用于過濾序列,接收一個函數(shù)和一個序列。和map不同的是,filter把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素。 輸出結(jié)果: sorted sorted函數(shù)也是一個高階函數(shù),在列表的學習中初步接觸了sorted,但其實它還可以接收一個key函數(shù)來實現(xiàn)自定義的排序。 key指定的函數(shù)將作用于被排序?qū)ο蟮拿恳粋€元素上,并根據(jù)key函數(shù)返回的結(jié)果進行排序。 輸出結(jié)果: 同樣的,sorted也可以對元組和字典進行排序 輸出結(jié)果: 當然,也能以values的值來排序,對字典的排序與元組類似,但返回值不同。 輸出結(jié)果: 可以看到,不管是以key值進行排序,還是以value值進行排序,排序結(jié)果只返回對應(yīng)順序的key值。 匿名函數(shù) 輸出結(jié)果: 上面就是一個匿名函數(shù)的使用,匿名函數(shù) lambda x: x * x 實際上就是: 只是在這里沒有顯式地定義函數(shù),這樣因為函數(shù)沒有名字,不必擔心函數(shù)名沖突,而且代碼看起來也簡潔。 |
|