如果我有一个有向图,其顶点用{1,2,3,...}表示,它们之间的连接是这样的:(意味着从b到a的有向边表示为< - b)中
List1: 1<-2<-3<-4<-5<-6
List2: 2<-4<-7<-6
List3: 1<-8<-7
List4: 1<-9<-2
顶点4的度数是2(因为它具有到3和2的边缘),6的度数是2,依此类推。我如何计算它并将其存储在python中的字典中,如下所示:
dict = {}
dict{4:'2', 6:'2'}
像这样。
提前谢谢。
答案 0 :(得分:0)
尝试以下方法,
l1 = [1, 2, 3, 4, 5, 6]
l2 = [2, 4, 7, 6]
l3 = [1,8,7]
l4 = [1, 9, 2]
from collections import defaultdict
d = defaultdict(list)
for l in [l1, l2, l3, l4]:
for i,n in enumerate(l):
if i:
d[n].append(l[i-1])
In [144]: d
Out[144]:
defaultdict(list,
{2: [1, 9],
3: [2],
4: [3, 2],
5: [4],
6: [5, 7],
7: [4, 8],
8: [1],
9: [1]})
您可以在defaultdict
dict
上执行degree = {k: len(v) for k,v in d.items()}
In [146]: degree
Out[146]: {2: 2, 3: 1, 4: 2, 5: 1, 6: 2, 7: 2, 8: 1, 9: 1}
上的所有操作。所以,如果你想计算学位,
int points = 0;
int goal = 100;
while (goal <= 100) {
for (int i = 0; i < goal; i++) {
if (points > 50) {
i = goal = 101;
}
points += i;
}
}