我遇到了一段 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
提交
取消