用python计算两个二维list依据第二维的前一个数据相加
生活随笔
收集整理的這篇文章主要介紹了
用python计算两个二维list依据第二维的前一个数据相加
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我也不知道為什么要寫這個,就當是閑的吧。
本文基于python3.6
如題,不明白的話就先舉個栗子:
兩個這樣的list要計算的結果為:
[["a", 3], ["b", 2], ["c", 5], ["d", 2]]兩種方法:
# 方法一 def f1(l1,l2):d1 = {l0[0]: l0[1] for l0 in l1}d2 = {l0[0]: l0[1] for l0 in l2}for k,v in d2.items():if k in d1.keys():d1[k] += velse:d1.setdefault(k, v)return d1# 方法二 def f2(l1):d3 = {l0[0]:0 for l0 in l1}for l in l1:d3[l[0]] += l[1]return [[k,v] for k,v in d3.items()]其實這兩種方法思想差不多,都是將其轉化為dict字典來計算,區別在于第一種方法是先轉為字典再相加,第二種方法為先合并再轉為字典。
個人更推薦第二種方法,第一種方法局限性較多,比如,兩個list原先數據的第二維數據的第一個數必須不同,形如
這樣的就不行,第二個方法則沒有這種問題;還有就是第一種方法一次只能將兩個list以這樣的方法相加,而第二種方法則沒有這種限制,第二種方法可以同時將多個list以這種方式相加。
啊,寫了這么多,感覺好像也沒啥用,就當練手了吧。^_^
總結
以上是生活随笔為你收集整理的用python计算两个二维list依据第二维的前一个数据相加的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在VS2017中用c#编写程序执行pyt
- 下一篇: python numpy库中省略号...