我正在使用一个相当基本的CSV文件来描述四个城市以及它们之间的距离。因此,目标是从所述文件中检索信息,并使用Python进行进一步的操作。
Excel文件
该文件在Excel中构建如下:
CSV文件
导出为CSV时,文件表示如下:
,OSL,CPH,LDN,TKO
OSL,0,2,4,10
CPH,2,0,2,9
LDN,4,2,0,12
TKO,10,9,12,0
获取城市
显然,第一行包含所有城市,以及第一个空白单元格。我已经完成以下操作来检索城市,不包括空白单元格:
def get_cities(file):
reader = csv.reader(file)
cities = []
row1 = next(reader)
cities.extend(row1[1:]) #exclude first cell (blank)
print cities
屈服:
['OSL', 'CPH', 'LDN', 'TKO']
映射城市和它们之间的距离
完成后,我现在可以读取文件的其余部分,以便检索城市之间的距离。
然而,我发现很难想出一种将此信息表示为数据结构的好方法。最理想的是,我希望能够检查任何两个城市之间的距离。
有关如何实施此建议的任何建议,我们将不胜感激。
即如何才能最好地代表此信息以便轻松查找距离?
答案 0 :(得分:1)
似乎您的数据直接表示图形的邻接矩阵。将其存储为邻接矩阵,只需对(city1,city2)进行简单查找即可。对于实施,您可以在城市中进行枚举。
答案 1 :(得分:0)
使用dicts的词典。这不是内存效率,但是使用内置python容器的最简单的解决方案。
map = {'OSL' :
{
'OSL' : 0,
'CPH' : 2,
...
},
'CPH' :
{
...
},
...
}
然后你可以像地图['OSL'] ['CPH']一样查找距离。