簡體   English   中英

在Python中將2個具有相同鍵但值不同的字典組合在一起

[英]Combine 2 dictionaries with the same keys but different values in Python

我有這兩個字典,一個代表人的身份證和他們朋友的朋友的身份證:

FOFDict = {0 : [1, 2, 3],
       1 : [2, 3, 4],
       2 : [0, 1, 3, 4],
       3 : [0, 1, 2, 5],
       4 : [1, 2, 6, 7],
       5 : [8, 3],
       6 : [9, 4, 7],
       7 : [9, 4, 6],
       8 : [5],
       9 : [6, 7]}

另一個顯示基於共享興趣(在代碼的前面找到),他們應該成為誰的朋友的ID:

       InterestFriendsDict = {0 : ([1, 5, 8, 9], ['C', 'Java','Data','Rainbows']),
       1 : ([0], ['C']),
       2 : ([3, 5], ['Python']),
       3 : ([2, 4, 5, 6], ['Python','ramen','R','stats','prob']),
       4 : ([3, 7], ['ramen','AI']),
       5 : ([0, 2, 3, 8], ['Java', 'Python', 'R']),
       6 : ([3], ['stats', 'prob']),
       7 : ([4, 8], ['AI', 'anatomy']),
       8 : ([0, 7, 9], ['Data', 'anatomy']),
       9 : ([0, 5, 8], ['Java', 'Data', 'Rainbows'])}

現在,我必須以顯示密鑰ID的方式組合這些詞典,然后顯示其朋友的朋友和應與之成為朋友的朋友,然后顯示他們所有人的共同利益。 例如,id為0和1的條目為:

{0: ([1, 2, 3, 5, 8, 9], ['C', 'Java', 'Data', 'Rainbows'],
{1: ([0, 2, 3, 4], ['C']),
...

我正在努力確定從哪里開始。 我以為我可以只使用.update之類的東西,但是我不確定,因為其中一個字典有一個元組,而另一個字典沒有。 如果您可以提供幫助,請不要使用defaultdict之類的方法進行響應,我是一名學生,我正在嘗試學習如何做到這一點。 謝謝!

嘗試將問題分解成小塊,然后將它們粘在一起。 這是解決問題的一種簡單方法:

new_dict = {}
# iterate over dictionary by calling items()
for key, val in InterestFriendsDict.items():
    # unpack the tuple you have with 2 variables just like the size of the tuple
    id_tup, interests = val
    new_dict[key] = (list(set(FOFDict[key] + id_tup)), interests)

因此需要注意的是,一個set具有唯一的值,因此它可以快速處理重復。 然后將其轉換回list ,並與興趣一起放入元組中。

暫無
暫無

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

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