python练习题5.2图的字典表示
图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图0点表示:
{'O':{'A':2,'B':5,'C':4}}。用eval函数处理输入,eval函数具体用法见第六章内置函数。
输入格式:
第一行表示输入的行数 下面每行输入表示一个顶点和该顶点相连的边及长度的字符串
输出格式:
在一行中输出顶点数,边数,边的总长度
输入样例:
在这里给出一组输入。例如:
4
{'a':{'b':10,'c':6}}
{'b':{'c':2,'d':7}}
{'c':{'d':10}}
{'d':{}}
输出样例:
在这里给出相应的输出。例如:
4 5 35
代码如下:
#!/usr/bin/python # -*- coding: utf-8 -*- n = int(input()) num = 0 sum = 0 for i in range(n): dic = eval(input()) #eval函数在这里就是说明dic接收的是一个字典 #print(dic) for j in dic: temp = dic[j] for key in temp: #计算边数和边总长度 num += 1 sum += temp[key] print(n,num,sum)
这个程序不难,重在分析理解。
1、第一个循环,循环接收字典。
2、第二个循环,让temp等于和该顶点相连的边及长度的字符串
3、第三个循环,计算边的数量、边的长度。
写起来不难,主要是前期的分析理解。
读书和健身总有一个在路上