簡體   English   中英

鍵不同時比較兩個字典中的值

[英]Comparing values in two dictionaries when keys are different

我需要使用DIFFERENT鍵比較兩個字典之間的值,並將結果放入第三個字典中。 輸入:

a={1:[0,0], 2:[1,0], 3:[1,2]}
b={4:[1,2], 5:[1,3]}

輸出:我想有兩個字典,它們都將從'b'復制。 在所有情況下,我都想忽略條目“ 0”。 第一個輸出顯示“ a”中有多少個鍵具有與b中的鍵完全相同的值。

c={4:3, 5:0}

第二個輸出字典顯示“ a”中有多少個鍵具有與b中的鍵相同的值(只有1個)。

d={4:[2], 5:[2,3]}

我試圖這樣做:

c=dict.fromkeys(b.keys())
d=dict.fromkeys(b.keys())

for k, v in b.iteritems():
    TST_s, TST_d= v[0], v[1]
    for each, every in a.iteritems():
        TRN_s, TRN_d= every[0], every[1]
        if TST_s == TRN_s and TST_d==TRN_d:
            c[k].append(each)
        elif TST_s == TRN_s and TST_d!=TRN_d:
            d[k].append(each)
        elif TST_s!= TRN_s and TST_d==TRN_d:
            d[k].append(each)
        else:
            pass

但是我越來越

AttributeError: 'NoneType' object has no attribute 'append'

任何幫助將不勝感激!

PS。 我知道代碼可以簡化,但是在編程方面我不是很有才華,而且我還沒有考慮過要在以后刪除的“ 0”。 此刻我只想讓它產生輸出...

c [k]和d [k]為None,因為dict.fromkeys(b.keys())返回{4:None, 5:None}

暫無
暫無

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

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