python练习题5.2图的字典表示

捕获.JPG

图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图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、第三个循环,计算边的数量、边的长度。

写起来不难,主要是前期的分析理解。


读书和健身总有一个在路上

原文地址:https://www.cnblogs.com/Renqy/p/12780830.html