描述:
**
sum()方法对系列进行求和计算。
语法:
sum(iterable[, start])
参数解释:
- iterable — 可迭代对象,如:列表、元组、集合。
- start — 指定相加的参数,如果没有设置这个值,默认为0。
返回值:
返回计算结果。
基本用法:
>>> sum([1,2,3]) # 默认加0
6
>>> sum([1,2,3], 2) # [1,2,3]先相加,最后加上2 得 8
8
>>> sum((1,2,3,4),2)
12
>>> sum({1,2,3}, 5)
11
返回值计算顺序:
sum()函数返回值计算顺序为 start值加上可迭代对象内所有元素执行”+”操作之后得到的值。
e.g:
>>> sum([(1,),(2,)], (3,))
(3, 1, 2)
# 结果为(3, 1, 2)并不是(1, 2, 3)
扩展:
sum()内可迭代对象元素不一定只有int类型,可以是列表、元组,但如果不是int类型的话,start值必须指定,也就是说第二个参数类型必须和可迭代元素类型是相同的, 不能使用默认值0了。否则会引发错误。
>>> sum([['1','2'],['3','4']], ['5']) #第一个参数和第二个参数类型都是list
['5', '1', '2', '3', '4']
>>> sum([(1,2),(3,)], (4,)) # 第一个参数和第二个参数类型都是tuple
(4, 1, 2, 3)
# 如果类型不一致会报错
>>> sum([(1,), (2,)], 4)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
# 注意:第二个参数不能是string类型
>>> sum(['1', '2'], '3')
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: sum() can't sum strings [use ''.join(seq) instead]
# 官方解释是字符串拼接推荐用.join()方式,sum()函数第二个参数不支持string,因为.join()方式会更快。