gpt4 book ai didi

Python 图形表示

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:06 26 4
gpt4 key购买 nike

如果我有一个有向图,其顶点由 {1,2,3,...} 表示,并且它们之间的连接如下所示:(意味着从 b 到 a 存在一条有向边,表示为 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'}

像这样。提前致谢。

最佳答案

尝试以下操作,

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}

关于Python 图形表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36699953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com