python sum函数导入list_python sum函数iterable参数为二维list,start参数为“[]”该如何理解...

1楼讲的很对,我这边举例详细说明一下。

如下为help(sum)解释

Help on built-in function sum in module builtins:

sum(iterable, start=0, /)

Return the sum of a 'start' value (default: 0) plus an iterable of numbers

When the iterable is empty, return the start value.

This function is intended specifically for use with numeric values and may

reject non-numeric types.

(END)

主要这句话Return the sum of a 'start' value (default: 0) plus an iterable of numbers,简单就是返回起始值start和迭代器每个元素累加的结果,而起始值默认为0。

举例说明:

a=[1,2,3]

sum(a) # 计算结果是sum(a) = 0 + 1 + 2 + 3, 起始start默认为0,是整数,加法没问题

sum(a, start=100) # sum(a, start=100) = 100 + 1 + 2 + 3, start变量也可以人为设置,此时为100,运算没问题

如果是二维list,如[[1,2,3],[4,5,6]], 这时迭代器每个元素均为list,这些元素作加法时start不能再使用默认整数类型值0了,因为整数和list无法做加法运算,即1+[1,2,3]+[4,5,6]运算是错误的,此时需要设置起始变量也为list类型,如start=[],如下:

a=[[1,2,3], [4, 5, 6]]

sum(a) # 这样写是错误的,sum(a) = 0 + [1,2,3] + [4, 5, 6] ,0无法和列表做加法运算

sum(a, start=[]) # 正确, sum(a, []) = [] + [1,2,3] + [4,5,6] = [1,2,3,4,5,6] ,这样才对

sum(a, start=[1,2,3]) # 正确, sum(a, [1,2,3]) = [1,2,3] + [1,2,3] + [4,5,6] = [1,2,3,1,2,3,4,5,6] ,也可以这样

结论:

使用sum做加法运算,start的值和迭代器中元素做加法运算,需要满足加法运算要求。

按照上面的示例,二维list使用sum可以实现多个list的拼接(其实使用numpy也很方便)。

如果遇到其他各种类型迭代器,只要按照定义展开就能轻松搞定内部机理,同时要记得设置start变量的值和迭代器元素类型相同哟!!!,不相同也可以,必须可以做加法运算,C++叫重载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值