我遇到了一段 python 代码,其中二维数组的求和函数计算为一个列表。例如:a = [['a','b','c'],['d','e','f'],['g','h','i']]]sum(a,[])回报['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']为什么会这样?也许我缺少一些基本的东西,但想了解它的机制。
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
Sums 从左到右开始和 iterable 的项目并返回总数
所以对于你的代码,由产生的操作sum
是
[] + ['a','b','c'] + ['d','e','f'] + ['g','h','i']
这是一个列表串联,并产生:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
请注意,如果您不提供 的start
值[]
,则 sum 使用默认start
值0
并执行:
0 + ['a','b','c'] + ['d','e','f'] + ['g','h','i']
结果是TypeError
:
类型错误:+ 不支持的操作数类型:'int' 和 'list'
aluckdog
TA贡献1847条经验 获得超7个赞
希望你能像这里一样简单理解
a = [['a','b','c'],['d','e','f'],['g','h','i']]
它是这样做的如下:
result = [] for list in a: result += list
现在返回结果列表:
print(result)
我还通知你上面的方法是快速的 sum(a, []) 方法
Sum 函数不是那样工作的,但你可以很容易地理解它是如何工作的
添加回答
举报
0/150
提交
取消