致读者:本人是一名通信专业学生,仅学了4天Python ,难免有些地方写的很笨拙。
写博客一方面是为了记录自己的学习过程中遇到的问题和思考,一方面是希望能够帮助到很多和自己一样处于困惑的读者。
水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!
越努力,越幸运
图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图‘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
解法1
n = int(input())
num = 0
s = 0
for _ in range(n):
dic = eval(input()).values()
# 下面这一步比较重要,这里我分解一下。
# 输入{'a':{'b':10,'c':6}}后,dic为dict_values([{'b': 10, 'c': 6}]),注意此时是dict_values类。
# 如果想要取出里面的字典需要先转换list,变成list[{'b': 10, 'c': 6}],{'b': 10, 'c': 6}为第一个元素。
ans = list(dic)[0]
# print(ans, type(ans))
l = list(ans.values())
num += len(l)
s += sum(l)
print(f'{n} {num} {s}')