1. 程式人生 > >Python中的sum函式一個妙用

Python中的sum函式一個妙用

有一道題,將一個二元列表,綜合成一個一元列表。 比如:[[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倡導的原則。

上面的第四種方法,通過正則表示式的方式,對多元列表做綜合處理的話,非常方便!