鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Python/ 矩陣中根據(jù)條件求和?

矩陣中根據(jù)條件求和?

問題描述

矩陣如下:

1,2017,2,5
1,2018,1,5
1,2018,2,4
2,2017,1,5
1,2018,1,2

根據(jù)前三列分出三種,產(chǎn)生新的矩陣:

1,2017,2,5
1,2018,1,7
1,2018,2,4
2,2017,1,5

少了一行,是因為只要前三列相同,那第四列求和,2+5=7

如何計算?

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

相關代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

回答
編輯回答
萢萢糖

就是分組求和的思想。

m = [[1,2017,2,5],[1,2018,1,5],[1,2018,2,4],[2,2017,1,5],[1,2018,1,2]]

# 先建立個dict,
# 前三項作為key, 第四項作為value
d = dict()
for i in m:
    d_key = tuple(i[:-1])
    d_value = i[-1]
    if d_key not in d:
        d.update({d_key:d_value})
    else:
        d[d_key] += d_value
        
 # 再把dict轉(zhuǎn)為數(shù)組
result = list()
for d_key,d_value in d.items():
    tmp = list(d_key)
    tmp.append(d_value)
    result.append(tmp)
print(result)   

result就是:

[[1, 2018, 2, 4], [1, 2018, 1, 7], [2, 2017, 1, 5], [1, 2017, 2, 5]]
2018年4月4日 04:19