Python 中的 reduce()(關鍵詞:Python/reduce)
reduce
把一個函式作用在一個序列 [x1, x2, x3...]
上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下一個元素做累積計算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
>>> reduce(add, [1,2,3,4,5])
15
>>> reduce(lambda x, y: 10 * x + y, [1 ,2,3,4,5])
12345
Python 2 中的 reduce 可以直接拿來用;
Python 3 中的 reduce 在 funtools 中。
相關推薦
Python 中的 reduce()(關鍵詞:Python/reduce)
Python 官方文件中的 reduce 廖雪峰 - Python 教程 中的 reduce 介紹 部落格園網友的講解,多了幾個例子 reduce 把一個函式作用在一個序列 [x1, x2, x3...] 上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下一個元素
Python 中 apply 內建函式(關鍵詞:Python/內建函式/apply)
>>> apply <built-in function apply> >>> def a(): ... print 'i am a' ... >>> apply(a) i am a >>> de
Python 中的 經典類、新式類比較(1)(關鍵詞:Python/經典類/新式類)
經典類中,屬性搜尋處理對所有路徑深度優先,直到繼承樹的頂端,然後從左到右進行; 新式類中,屬性搜尋處理沿著樹層級、以更加廣度優先的方式進行。 新式類的優點:可以避免重複搜尋超類。 直接上程式碼說明: # Python 2 class Super: attr = 0 cla
Python 中的 zfill()(關鍵詞:Python/zfill)
描述 Python zfill() 方法返回指定長度的字串,原字串右對齊,前面填充0。 語法 zfill()方法語法: str.zfill(width) 引數 width – 指定字串的長度。原字串右對齊,前面填充0。 返回值 返回指定長度的字串。 例項
Python 中的 defaultdict(關鍵詞:Python/defaultdict)
普通字典 在 key 不存在時,會觸發異常; 而 defaultdict 在 初始化容器 時,會讓 呼叫者 提前 指定 預設值,所以,在 key 不存在 時,會 例項化 一個值,作為 預設值,不會 觸發異常。 >>> d = dict() >>>
Python 中的 zip(關鍵詞:Python/zip)
描述 zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。 如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 * 號操作符,可以將元組解壓為列表。 zip 方法在 Python 2 和 Python 3
Python 中的 repr (關鍵詞:Python/repr)
描述 函式str() 用於將值轉化為適於人閱讀的形式, repr() 函式將物件轉化為供直譯器讀取的形式。 repr()函式得到的字串通常可以用來重新獲得該物件,repr()的輸入對python比較友好。通常情況下obj==eval(repr(obj))這個等式是成立的。
python中filter、map、reduce的區別
python中有一些非常有趣的函式,今天也來總結一下,不過該類的網上資料也相當多,也沒多少乾貨,只是習慣性將一些容易遺忘的功能進行整理。 lambda 為關鍵字。filter,map,reduce為內建函式。 lambda:實現python中單行最小函式。 g = lambda x:
Python 中的 *args and **kwargs(關鍵詞:Python/)
* 和 ** 讓函式支援接收任意數目的引數,有函式定義和函式呼叫這 2 種情況。 在函式定義中, (1)*args 收集任意多的 位置引數 到 1 個元組 args 中; (2)**kwargs 收集任意多的 關鍵字引數 到 1 個字典 kwargs 中; (3)還可以混合位置引數、
Python 中的類變數和例項變數(關鍵詞:Python/類變數/例項變數)
類變數: class 語句的頂層進行賦值的變數,會被附加在類中,被所有例項所共享; 例項變數:附加在例項上的變數,不被共享,可通過這 2 種方式建立或修改: aInstance.name = sth 的形式; 類的例項方法中,self.name = sth 的形式。
Python 中的 @staticmethod和@classmethod(關鍵詞:Python/靜態方法/類方法/@staticmethod/@classmethod)
結合書籍,我的理解 靜態方法: 出現在類中,第 1 個引數不是例項、也不是類, 由 @staticmethod 裝飾的方法; 類方法: 出現在類中,第 1 個引數不是例項、而是類, 由 @classmethod 裝飾的方法。 class C: @staticmetho
Python 中的 super(關鍵詞:Python/super)
super() super() 可以實現在子類中呼叫父類的方法 # Python 2 >>> class Base(object): def __init__(self): print "Base initing..." >>>
python中的map()函式和reduce()函式
map()函式的用法: map(函式function_name, 可迭代物件Iterable) map()函式接受兩個引數,一個是函式,一個是可迭代物件。map()函式將傳入的函式一次作用在序列的每一個元素,並把結果作為新的可迭代物件返回。 舉例說明,比
python中的map()函式和reduce()函式的區別和用法介紹
咱們先從定義上來解釋一下這兩個函式的區別: ①從引數方面來講: map(func, *iterables)包含兩個引數,第一個是引數是一個函式,第二個是序列(列表或元組)。其中,函式(即map的第一個引
Python 中星號作用:解包&打散
列表 col 使用 python shel == pri pan num python中’*’和’**’的使用分兩個方面,一個是計算,另一個是參數傳遞過程中元素的打包和解包。 計算方面 ‘*’和&
Learing-Python【3】:Python中的基本運算符
連接 鏈式 優先 bubuko 圖片 比較運算 我只 還需要 其中 一、算數運算 二、比較(關系)運算 比較運算只能在同類型之間進行,其中 int 與 float 同屬於數字類型 三、賦值運算 1、增量賦值 2、鏈式賦值
AttributeError: 'module' object has no attribute 'Process'(關鍵詞:Python/bug/debug/模組/模組)
multiprocessing.py: import multiprocessing def work(): print 'Worker' return if __name__ == '__main__': jobs = []
Python 之 property(關鍵詞:Python/property/@property/特性)
特性(property) 特性協議允許我們把 1 個特定屬性的訪問操作(讀取、設定、刪除)指向我們提供的函式或方法,使得我們能夠插入在屬性的訪問操作的時候自動允許的程式碼,還可以為屬性提供文件。 property class Person: def __init__(sel
python2.7無法在登錄檔中被識別:python version 2.7 required,which was no
安裝MySQL-python-1.2.4b4.win32-py2.7的時候,不能再登錄檔中識別出來python2.7 方法:新建一個register.py 檔案,把一下程式碼貼進去,儲存 !E:\python2.7 import sys from _winreg impor
Python中字串格式化:%和format
Python2.6推出了[str.format()]方法,和原有的%格式化方式有小小的區別。那個方法更好? 下面的方法有同樣的輸出,它們的區別是什麼? #!/usr/bin/python sub1 = "python string!" sub2 = "an arg