2 回答

TA貢獻1783條經(jīng)驗 獲得超4個贊
問題是source即使在匹配之后它也在迭代,因此覆蓋了以前的更新。您可以打開包裝source并進行比較:
for item2 in nodes:
sources = list(zip(*source))
if item2["id"] in sources[0]:
item2.update({"inDegree": sources[1][sources[0].index(item2["id"])]})
else:
item2.update({"inDegree": 0})
print(nodes)
[{'id': '144 IV 285',
'date': '2018-08-15',
'relevancy': 10,
'outDegree': 18,
'inDegree': 16},
{'id': '144 IV 240',
'date': '2016-08-15',
'relevancy': 4,
'outDegree': 10,
'inDegree': 0}]

TA貢獻1785條經(jīng)驗 獲得超8個贊
嘗試這個:
for item in nodes:
for item2 in source:
if item["id"] == item2[0]:
item.update( {"inDegree": item2[1]})
break
else:
item.update( {"inDegree": 0})
添加回答
舉報