摘要:最近在看英文版,看到了講解等函數,覺得講解的思路特別好。所以,我加上了自己的理解,寫了本篇文章。
最近在看《Think Python》(英文版),看到了講解map, reduce, filter等函數,覺得講解的思路特別好。所以,我加上了自己的理解,寫了本篇文章。
引子如果要對列表中的數字求和,我們可以這樣做:
def add_all(t): """t is a list of nums""" total = 0 for x in t: total += x return total
運行結果:
由于python中求和操作太常見了,所以python提供了內置函數sum來進行這項操作
sum將上一版代碼修改如下:
if __name__ == "__main__": t = [1, 2, 3, 4] print sum(t)
運行結果:
像這種從一個列表中得出一個結果的操作,也叫reduce,除了求和這一種reduce操作外,python還支持自定義的方式
reduce比如,我不是想對隊列求和,而是想得到列表各數字的乘積,可以利用reduce這樣實現:
def multiple_all(x, y): return x * y if __name__ == "__main__": t = [1, 2, 3, 4] print reduce(multiple_all, t)
運行結果:
上面介紹了將一個從一個列表得到一個結果的情形,還有一種情形是:按照某個規律對列表中的元素一一轉換,這就要用到map內置函數了
map如果給定一個列表(元素為字符串),要把列表元素首字母大寫,可以這樣做
if __name__ == "__main__": t = ["hello", "world", "yarving"] print map(lambda x: x.capitalize(), t)
運行結果:
還有一種情況,是要將列表里的元素過濾出去,可以用到filter函數
filter給定一個列表(元素為數字),如果要僅保留不大于4的數字,可以這樣做:
if __name__ == "__main__": t = [1, 2, 3, 4, 5, 6, 7] print filter(lambda x: x <= 4, t)
運行結果:
如想要獲取《Think Python》(英文書)的PDF版本,可發送郵件到 yarving@qq.com ,并標明主題 "Think Python"
本文作者: Yarving Liu
本文鏈接: http://yarving.historytale.co...
版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協議。轉載請注明出處!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41901.html
摘要:用匿名函數有個好處,因為函數沒有名字,不必擔心函數名沖突。和不同的是,把傳入的函數依次作用于每個元素,然后根據返回值是還是決定保留還是丟棄該元素。字符串給出當前平臺使用的行終止符。程序中間的退出,為正常退出。 列表生成式 函數的參數類型 lambda函數 map, reduce, filter, sorted函數 eval, exec, join, zip函數 itertools中的...
摘要:的函數使得函數能直接以的每個元素作為參數傳遞到中并返回響應的新的如下求的平方在需要對中的每個元素做轉換的時候會很方便比如把中的每個轉換成當然第二個參數是也可以是或者是類結構的是不行的不過返回的結果都是這里順便說一下的結構是用表示的如是直觀的 map map(funcname, list) python的map 函數使得函數能直接以list的每個元素作為參數傳遞到funcname中...
摘要:上一講和本講的標題是大話題小函數,所謂大話題,就是這些函數如果溯源,都會找到聽起來更高大上的東西。是提出的一個軟件架構,用于大規模數據集大于的并行運算。 上一講和本講的標題是大話題小函數,所謂大話題,就是這些函數如果溯源,都會找到聽起來更高大上的東西。這種思維方式絕對我堅定地繼承了中華民族的優良傳統的。自從天朝的臣民看到英國人開始踢足球,一直到現在所謂某國勃起了,都一直在試圖論證足球起...
摘要:好啦,首先讓我們先搞明白基礎定義,到底是什么表達了中用于創建匿名函數的特殊語法。其實總結起來,可以理解為一個小的匿名函數,函數可以使用任意數量的參數,但只能有一個表達式。 lambda是什么 大家好,今天給大家帶來的是有關于Python里面的lambda表達式詳細解析。lambda在Python里面的用處很廣,但說實話,我個人認為有關于lambda的討論不是如何使用的問題,而是該不該用...
摘要:另外,這些中的每一個都是純函數,有返回值。例如,如果要計算整數列表的累積乘,或者求和等等基礎語法參數是連續作用于每一個元素的方法,新的參數為上一次執行的結果,為被過濾的可迭代序列返回值最終的返回結果在中,是一個內置函數。 簡潔的內置函數 大家好,我又回來了,今天我想和大家分享的是Python非常重要的幾個內置函數:map,filter,reduce, zip。它們都是處理序列的便捷函數...
閱讀 2601·2021-11-15 11:38
閱讀 2618·2021-11-04 16:13
閱讀 17981·2021-09-22 15:07
閱讀 1014·2019-08-30 15:55
閱讀 3261·2019-08-30 14:15
閱讀 1663·2019-08-29 13:59
閱讀 3207·2019-08-28 18:28
閱讀 1575·2019-08-23 18:29