Python中的sum函式一個妙用
阿新 • • 發佈:2019-01-24
有一道題,將一個二元列表,綜合成一個一元列表。 比如:[[1],[2,3],[4,5,6]],將其轉成[1, 2, 3, 4, 5, 6].
這個時候使用Python自帶的sum函式會很簡單。 先看下sum函式的幫助文件:
從上面的幫助文件可以看出:sum函式是個內建函式,可以求一個數字列表的和,並且可以帶初始值,如果不帶初始值的話,預設是0.比如說:
>>> sum([1,2,3,4]) # 預設的起始值為0 10 >>> sum([1,2,3,4], 0) # start值設定為0,與上面等同 10 >>> sum([1,2,3,4], 5) # start值設定為5,返回10+5=15 15
上面的都好理解,但如何使用sum函式來完成上面那道題呢。 這就要藉助幫助文件裡面說的,首個引數為可迭代的列表,初始值預設為0,也可以為其他值,比如說[],空列表。在Python裡面,型別是動態型別,一種操作或介面,到底做何操作取決於物件本身。比如說同樣是+,如果兩者都是數字1+1=2,如果兩者都是字串,則'1'+'1'='11'。所以如果這裡的start本身為[],則會執行列表合併的操作,也就達到目的了。
如果不用上面的方法,用其他方法的話,可能就要複雜一點。
跟上面的四種方法比較起來,覺得用sum函式應該是簡潔明瞭的,也符合Pythonic倡導的原則。
上面的第四種方法,通過正則表示式的方式,對多元列表做綜合處理的話,非常方便!