将两列转换为Python字典的最简单方法

时间:2011-11-02 06:22:09

标签: python

如何将以下信息放入Python词典 - http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html?键将是国家,值将是双字符ISO代码。

例如,我希望结果为:

mapping_of_country_to_iso = {'AALAND ISLANDS':'AX','AFGHANISTAN':'AF',...} 

3 个答案:

答案 0 :(得分:3)

如果你是python2.7 +,你可以使用字典理解

{k:v for k,v in list_of_tuples}

其中元组的每个成员的格式为("AALAND ISLANDS", "AX")。这是更通用的解决方案,但对于您的方案可能不是必需的。

对于较旧的pythons,您只需使用元组列表作为参数调用字典构造函数。

dict(list_of_tuples)

你会得到你想要的东西。

答案 1 :(得分:2)

我只是将重要数据复制并粘贴到名为'countries.txt'的文本文件中,然后执行以下操作:

import string

myFilename = "countries.txt"

myTuples = []


myFile = open (myFilename, 'r')

for line in myFile.readlines():
    splitLine = string.split (line)
    code = splitLine [-3]
    country = string.join(splitLine[:-3])
    myTuples.append(tuple([country, code]))

myDict = dict(myTuples)
print myDict

这可能不是“最佳”方式,但它似乎有效。

这是遵循John Machin的有用建议:

import string

myFilename = "countries.txt"


myDict = {}

myFile = open (myFilename, 'r')

for line in myFile:
    splitLine = string.split (line)
    code = splitLine [-3]
    country = " ".join(splitLine[:-3])
    myDict[country] = code

print myDict

答案 2 :(得分:0)

如果我正确理解了您的问题,我相信df.to_dict()函数将最有帮助。

假设您的国家/地区信息数据框称为df,首先(如果尚未)将“国家/地区”设置为索引。接下来,使用.to_dict()函数。代码如下所示:

df = df.set_index('Country')
dict = df.to_dict('series')

'series'只是组织字典的一种方法。我建议您查看.to_dict()的pandas文档,因为有多种使用此命令的方法。