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

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

如何對元組對列表求和?

如何對元組對列表求和?

慕村225694 2023-07-05 16:36:06
我有一個配對列表,每秒不斷更新新值。如果每個元組中的第二個值等于每個元組中的第一個值,我需要對它們進行求和。我嘗試過使用字典,但由于鍵是唯一的,它會覆蓋以前的更新。[(3.05, 0.0), (3.1, 863.62), (3.05, 156.74)][(3.05, 0.0), (3.1, 863.62), (3.05, 156.74), (3.1, 293.97)][(3.05, 0.0), (3.1, 863.62), (3.05, 156.74), (3.1, 293.97), (3.05, 16.32)][(3.05, 0.0), (3.1, 863.62), (3.05, 156.74), (3.1, 293.97), (3.05, 16.32), (3.05, 210.72)]期望的輸出:[(3.05, 383.06), (3.1, 1157.59)]我不得不重現這個問題,在原來的帖子中,數字每秒從 Excel 流入。當我使用字典時,新的更新鍵將替換舊的鍵,并根據唯一鍵記錄新值。因此,很難將所有值與它們的鍵相加。這只是一個示例,更新將是 excel 提供的任何內容。import collections ,random, stringalpha = list(string.ascii_letters)lst_a = []lst_b = []for i in range(100):    lst_a.append(alpha[random.choice(range(25))])    lst_b.append(random.choice(range(1000)))combine = dict(zip(lst_a,lst_b))print(combine.get('a'))update = list(zip(['a'],[2000]))combine.update(update)print(combine.get('a'))例如,使用鍵“a”,這些值不是彼此之和。
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

你可以使用默認字典

d = defaultdict(float)

for a, b in list_of_pairs:

? ? d[a] += b

desired_output = list(d.items())


查看完整回答
反對 回復 2023-07-05
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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