我遇到了以下问题,我有点不确定。据我所知,字典包含每个城镇及其与每个城市的距离,但结构如{Albury: 925,1440,352,3937,308,3583,565......}
还是不同?
下表从网上下载并保存在文件distance.csv中。它规定了主要城镇(例如奥尔伯里)和首府城市(例如阿德莱德)之间的公路距离(以公里为单位)。
Town,Adelaide,Brisbane,Canberra,Darwin,Melbourne,Perth,Sydney
Albury,925,1440,352,3937,308,3583,565
Alice Springs,1544,2998,2658,1503,2255,3549,2931
Ballarat,618,1743,777,3645,112,3309,973
Bendigo,639,1619,653,3671,147,3335,849
Broken Hill,515,1545,1108,3128,825,2824,1154
Broome,4269,4646,4975,1880,4996,2233,5112
Cairns,3384,1699,2954,2885,3055,6050,2685
...
考虑以下代码,该代码从该文件加载数据。
from csv import DictReader
def p(f):
a = {}
for row in DictReader(open(f)):
x = row["Town"]
b = {}
for k in row:
if k != "Town":
b[k] = int(row[k])
a[x] = b
return a
t = p("distances.csv")
用20-30个字解释代码执行后变量t中包含的数据结构。
答案 0 :(得分:1)
如果你添加
import pprint
pprint.pprint(t)
在脚本底部并执行它,您将清楚地看到您的数据结构。它看起来像这样:
{'Albury': {'Adelaide': 925,
'Brisbane': 1440,
(...)
'Sydney': 565},
'Alice Springs': {'Adelaide': 1544,
(...)
但是,正如@sarnold在他的评论中所说,因为这有点像家庭作业,我会留给你解释数据结构。作为提示,您可能需要查看有关数据创建方式的DictReader
文档。