亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在列表列表中添加“子列表”的值

如何在列表列表中添加“子列表”的值

不負相思意 2023-03-16 15:37:08
我的腳本中有一個列表列表:list = [[1,2]        [4,3]        [6,2]        [1,6]        [9,2]        [6,5]]我正在尋找一種解決方案來總結列表列表中每個“子列表”的內容。所需的輸出將是:new_list = [3,7,8,7,11,11]我知道將所有這些列表組合成一個:new_list = [27,20]但這不是我想要完成的。我需要將這些“子列表”中的兩個值組合起來,并讓它們在主列表中保留為它們自己的條目。如果還解釋了您如何解決問題而不是僅僅將解決方案交給我,我將不勝感激。我正在嘗試學習 python,所以即使是一個小的解釋也會非常感激。
查看完整描述

2 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

“手動”解決方案將使用 for 循環。


new_list = []

for sub_list in list:

   new_list.append(sum(sub_list))

或作為列表理解:


new_list = [sum(sub_list) for sub_list in list]

for 循環遍歷列表的元素。在您的例子中,list是一個列表列表。所以每個元素本身就是一個列表。這意味著在迭代時,sub_list 是一個簡單的列表。為了獲得列表的總和,我使用了sum()內置函數。您當然可以手動迭代并對每個元素求和:


new_list = []

for sub_list in list:

   sum_val = 0

   for element in sub_list:

       sum_val = sum_val + element

   new_list.append(sum_val)

但沒有必要。


更好的方法是使用numpy,它允許您按軸求和,因為它在列表列表中看起來像數組。由于您正在學習基本的 python,因此了解 numpy 還為時過早。請記住,有一個用于處理多維數組的包,它允許它根據您的選擇執行一些操作,例如在軸上求和。


編輯:我看到了其他解決方案的建議。由于兩者都有效,我相信對于第一次學習編程的人來說,這個解決方案更“易于理解”。使用列表理解很好而且正確,但在第一次學習時可能會有點混亂。同樣如建議的那樣,調用變量list是一個壞主意,因為它是關鍵字。更好的名稱是“my_list”、“tmp_list”或其他名稱。


查看完整回答
反對 回復 2023-03-16
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

使用列表理解。還要避免使用關鍵字作為變量名,在你的情況下你覆蓋了內置的list.


# a, b -> sequence unpacking

summed = [a + b for a, b in lst] # where lst is your list of lists


# if the inner lists contain variable number of elements, a more 

# concise solution would be

summed2 = [sum(seq) for seq in lst]

在此處詳細了解強大的列表理解。



查看完整回答
反對 回復 2023-03-16
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號