我有一個相當演算法的問題。我正在使用 Python,所以這將是一個獎勵,但本質上它是關于如何解決問題的。
我有一個嵌套字典,其中每個客戶都有他們與其他客戶的關系。基本上,如果他們喜歡相同的東西,他們就會更加兼容。計算方式是,對于第一個客戶,兼容性是與其他所有客戶計算的,但對于第二個客戶的回圈,第一個被跳過,因為它已經計算過了。你最終得到一個像這樣的字典
Custdict={‘1’:{‘2’:1,’3’:0,’4’:3},’2’:{‘3’:1,’4’:2}…}
因此,對于最后一個客戶,假設是第 10 個客戶,它沒有作為鍵/值對的條目,因為它是在以前的客戶中計算的。我的問題是,如何從以前的資料中獲取這些資料并將它們作為鍵/值添加到以后的資料中。所以上面的字典應該變成
Custdict={‘1’:{‘2’:1,’3’:0,’4’:3},’2’:{‘1’:1,‘3’:1,’4’:2}…}
我做了一些在線搜索,看看是否有這樣的演算法,但找不到任何東西
uj5u.com熱心網友回復:
作為一個簡單的解決方案,您可以遍歷字典中的所有值,并且對于每個客戶-客戶對(i, j),您還可以設定 的值(j, i)。
from collections import defaultdict
cust = {
1: {
2: 1,
3: 0
},
2: {
3: 1
}
}
new_cust = defaultdict(dict)
for customer in cust.keys():
for neighbour in cust[customer].keys():
new_cust[neighbour][customer] = cust[customer][neighbour]
new_cust[customer][neighbour] = cust[customer][neighbour]
print(dict(new_cust))
# prints {2: {1: 1, 3: 1}, 1: {2: 1, 3: 0}, 3: {1: 0, 2: 1}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528179.html
上一篇:如何實體化默認地圖?
