開(kāi)滿天機(jī)
2023-02-07 11:02:05
我遇到了一段 python 代碼,其中二維數(shù)組的求和函數(shù)計(jì)算為一個(gè)列表。例如:a = [['a','b','c'],['d','e','f'],['g','h','i']]]sum(a,[])回報(bào)['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']為什么會(huì)這樣?也許我缺少一些基本的東西,但想了解它的機(jī)制。
2 回答

呼喚遠(yuǎn)方
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
Sums 從左到右開(kāi)始和 iterable 的項(xiàng)目并返回總數(shù)
所以對(duì)于你的代碼,由產(chǎn)生的操作sum
是
[] + ['a','b','c'] + ['d','e','f'] + ['g','h','i']
這是一個(gè)列表串聯(lián),并產(chǎn)生:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
請(qǐng)注意,如果您不提供 的start
值[]
,則 sum 使用默認(rèn)start
值0
并執(zhí)行:
0 + ['a','b','c'] + ['d','e','f'] + ['g','h','i']
結(jié)果是TypeError
:
類(lèi)型錯(cuò)誤:+ 不支持的操作數(shù)類(lèi)型:'int' 和 'list'

aluckdog
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
希望你能像這里一樣簡(jiǎn)單理解
a = [['a','b','c'],['d','e','f'],['g','h','i']]
它是這樣做的如下:
result = [] for list in a: result += list
現(xiàn)在返回結(jié)果列表:
print(result)
我還通知你上面的方法是快速的 sum(a, []) 方法
Sum 函數(shù)不是那樣工作的,但你可以很容易地理解它是如何工作的
添加回答
舉報(bào)
0/150
提交
取消