4 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個贊
sum(iterable[, start]) ,iterable為可迭代對象,如:
sum([ ], start) , #iterable為list列表。
sum(( ), start ) , #iterable為tuple元組。
最后的值=可迭代對應(yīng)里面的數(shù)相加的值 + start的值
start默認(rèn)為0,如果不寫就是0,為0時(shí)可以不寫,即sum()的參數(shù)最多為兩個,其中第一個必須為iterable。
按照慣例,在開發(fā)語言中,sum函數(shù)是求和函數(shù),求多個數(shù)據(jù)的和,而在python中,雖然也是求和函數(shù),但稍微有些差別,sum()傳入的參數(shù)得是可迭代對象(比如列表就是一個可迭代對象),返回這個被傳入可迭代對象內(nèi)參數(shù)的和。
比如:

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個贊

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個贊
sum(iterable[, start]) ,iterable為可迭代對象,如:
sum([ ], start) #iterable為list列表
sum(( ), start ) #iterable為tuple元組
......
最后的值 = 可迭代對象里面的數(shù)相加的值 + start的值
start默認(rèn)為0,如果不寫就是0,為0時(shí)可以不寫
即sum()的參數(shù)最多為兩個,其中第一個必須為iterable,例如:
>>> sum([1, 2, 3,], 4)
10
>>> sum((1, 2), 3)
6
如果你寫成sum([1,2,3]),start就是默認(rèn)值 0
>>> sum([1, 2, 3])
6
>>> sum([ ], 2)
2
>>> sum(( ), )
0
>>> sum([1, 2] , 0)
3
當(dāng)然iterable為dictionary字典時(shí)也是可以的:
>>> sum({1: 'b', 7: 'a'})
8
>>> sum({1:'b', 7:'a'}, 9)
17
下面這些寫法目前是不被接受的(以list為例,其他iterable同理):
一、
>>> sum([1,2],[3,4])
Traceback (most recent call last):
File "<pyshell#115>", line 1, in <module>
sum([1,2],[3,4])
TypeError: can only concatenate list (not "int") to list
二、
>>> sum(4,[1,2,3])
Traceback (most recent call last):
File "<pyshell#116>", line 1, in <module>
sum(4,[1,2,3])
TypeError: 'int' object is not iterable
三、
>>> sum()
Traceback (most recent call last):
File "<pyshell#117>", line 1, in <module>
sum()
TypeError: sum expected at least 1 arguments, got 0
四、
>>> sum(,2)
SyntaxError: invalid syntax
五、
>>> sum(1,3)
Traceback (most recent call last):
File "<pyshell#112>", line 1, in <module>
sum(1,3)
TypeError: 'int' object is not iterable
附其官方解釋:
>>> help(sum)
Help on built-in function sum in module builtins:
sum(...)
sum(iterable[, start]) -> value
Return the sum of an iterable of numbers (NOT strings) plus the value
of parameter 'start' (which defaults to 0). When the iterable is
empty, return start.

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個贊
sum是python中一個很實(shí)用的函數(shù),但是要注意它的使用,我第一次用的時(shí)候,就把它這樣用了:
s = sum(1,2,3)
結(jié)果就悲劇啦
其實(shí)sum()的參數(shù)是一個list
例如:
sum([1,2,3])
sum(range(1,11))
還有一個比較有意思的用法
a = range(1,11)
b = range(1,10)
c = sum([item for item in a if item in b])
print c
輸出:
45
1 |
- 4 回答
- 0 關(guān)注
- 959 瀏覽
添加回答
舉報(bào)