圖的字典表示。輸入多行字符串,每行表示一個頂點和該頂點相連的邊及長度,輸出頂點數,邊數,邊的總長度。比如上圖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、第三個循環,計算邊的數量、邊的長度。
寫起來不難,主要是前期的分析理解。
讀書和健身總有一個在路上