![](/img/trans.png)
[英]How to build directed graph from nested dictionary? (Python 3 | NetworkX)
[英]Creating directed graph from dictionary with scores
您可以使用一些collections
utils來獲得輸出:
from collections import Counter, defaultdict
d1 = {'a': ['b', 'c', 'b'], 'b': ['a', 'd', 'e']}
pointed_to = {k: Counter(v) for k, v in d1.items()}
pointed_from = defaultdict(dict)
for k, v in pointed_to.items():
for k_, v_ in v.items():
pointed_from[k_][k] = v_
# pointed_to
{'a': Counter({'b': 2, 'c': 1}),
'b': Counter({'d': 1, 'a': 1, 'e': 1})}
# pointed_from
defaultdict(<class 'dict'>, {'d': {'b': 1},
'a': {'b': 1},
'c': {'a': 1},
'b': {'a': 2},
'e': {'b': 1}})
請注意, Counter
和deafultdict
都是dict
子類,因此,就所有意圖和目的而言,這兩個都可以用作所需的輸出dict。
如果您確實想要dict
對象,則可以輕松實現:
pointed_to = {k: dict(v) for k, v in pointed_to.items()}
pointed_from = dict(pointed_from)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.