Re: [問題] list相同key數值相加
※ 引述《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相加?
用前三筆資料當例子:
data = [['102C', '1', '0'],
['1040', '0', '250'],
['1042', '5', '10']]
如果想要相加資料中每一個 list 的每一個 element,
可以先用 zip(*data) 拿到由相同 element index 組成的 list:
[('102C', '1040', '1042'), ('1', '0', '5'), ('0', '250', '10')]
如此一來就簡單多了,
假設第一個 element 存放的是16進位的值,其他是10進位的話:
k1, k2, k3 = zip(*data)
sum(map(lambda x: int(x, 16), k1)) # 得到第一個 element 總合 12462 (10進位)
sum(map(int, k2)) # 得到第二個 element 總合 6
sum(map(int, k3)) # 得到第三個 element 總合 260
---
希望沒有理解錯~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.184.27
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章