Re: [問題] list相同key數值相加

看板Python作者時間13年前 (2012/06/16 03:28), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《ntasop (kuli)》之銘言: : [['102C', '1', '0'], ['1040', '0', '250'], ['1042', '5', '10'], : ['1040', '0', '1000'], ['1090', '0', '40'], ['1090', '['1090', '20', '0'], : ['102C' '20', '0'], ['1142', '0', '21000'],......] : 真的不好意思寫不出來,所以來請教高手, : 有比較快的方法把上面list相同key1後key2,key3相加? # version > 2.5 from collections import defaultdict a = [ ['102C', '1', '0'], ['1040', '0', '250'], ['1042', '5', '10'], ['1040', '0', '1000'], ['1090', '0', '40'], ['1090', '20', '0'], ['102C', '20', '0'], ['1142', '0', '21000'], ] d = defaultdict(lambda : [0,0]) for k,v0,v1 in a: d[k] = [d[k][0]+int(v0),d[k][1]+int(v1)] d = dict(d) 我的話會先用這種直白作法...應該還滿好理解的 其實用基本dict,for,if也都可以刻出一樣的 建議您有時候還是自己先刻刻看比較好... po上來有問題的話相信版上各位大大會幫忙指正觀念 -- ~(291705206) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.22.214

06/16 13:25, , 1F
原來第一個是key... 我理解錯問題了XD
06/16 13:25, 1F
文章代碼(AID): #1FsupGna (Python)
文章代碼(AID): #1FsupGna (Python)