2 回答
TA贡献1783条经验 获得超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条经验 获得超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})
添加回答
举报