簡體   English   中英

有沒有辦法在 Python 中組合常用鍵並添加值?

[英]Is there a way to combine common keys and add values in Python?

嗨,我看到了關於如何在 Python 中組合兩個字典的各種帖子,但是我想做的是在同一個字典中組合類似的鍵並添加值? ..事實上,我最初要做的是將鍵重命名為各種類別,然后 id 喜歡組合相似的鍵並添加值。 有沒有一種簡單的方法可以做到這一點? 目前,我選擇了迭代和更改鍵..但這似乎是一種緩慢的做事方式。 我想知道是否先迭代事務描述並創建一個新列表,然后再創建 zip? 任何想法都非常感謝。

這是我謙虛的開始

df = pd.read_csv("spreadsheet.csv")
item = df['Transaction Description']
cost = df['Debit Amount']

purchases = {}

purchases = {}
key, value in zip(item, cost):
purchases[key] = value


keys = purchases.keys()


 for i in purchaces.keys {
  if key == "Soverign housing" 
  purchases [Rent] = purchaces[Soverign housing]
 del dictionary[Soverign housing]
 ...etc

最簡單的方法是使用in查看新字典是否包含每個字典中的鍵,在此示例中,我使用了*args ,它是 arguments 的列表,以使其更加靈活。

dic_a = {'A': 20, 'B': 30, 'C': 40}
dic_b = {'A': 5, 'C': 2, 'F': 100}
dic_c = {'H': 32, 'K': 75, 'G': 15}

def combine_dict(*args):
    comb = dict()
    for dic in args:
        for key in dic:
            if key in comb:
                comb[key] += dic[key]
            else:
                comb[key] = dic[key]
    return comb

if __name__ == '__main__':
    print(combine_dict(dic_a, dic_b))
    print(combine_dict(dic_a, dic_b, dic_c))

我不明白您對濃縮值等的含義是什么。

@user1717828 適合詢問輸入/輸出代碼,因此我們可以清楚地理解它。

但是我理解的是,當您結合 2 dict object 時,您想要它應該保留相同的鍵但結合值,例如

dict_a = {'A':1, 'B': 2, 'C':3}
dict_b = {'A':10, 'C': 20, 'D':30}

for key,val in dict_b:
    try:
        _key = dict_a[key]  # Already Exist Key in Dict A
    except: # If Object does not Exist
        dict_a[key]=val
    else: # If exist Then Make a list and Append
        dict_a_val = dict_a[key] #Current value in dict_a
        dict_a[key] = []
        dict_a[key].append(dict_a_val)
        dict_a[key].append(val)

#output:
# {'A':[1,10], 'B': 2, 'C':[3,20] , 'D':30}

希望你在找這個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM