从具有三列的文件制作字典

时间:2016-05-25 22:59:00

标签: python dictionary

如果我正在阅读包含三列的文件,请执行以下操作:

james     1.0    2.5

Tom       2.0    2.1

Ryan      3.0    2.5

我无法弄清楚如何将第一列作为我的字典的键(作为字符串)和接下来的2列(作为浮点数)我的值。我知道如何只使用两列,但我对如何使用3感到困惑。

到目前为止,这是我的代码:

def makeDict(filename):
    with open(filename) as f:
        sDict = dict(x.rstrip().split(None,1) for x in f)
        return(sDict)
        filename.close()

5 个答案:

答案 0 :(得分:1)

怎么样:

with open(filename) as f:
    return {k:[v1,v2] for k,v1,v2 in (x.rstrip().split() for line in f)}

答案 1 :(得分:1)

dict = {}
f = open(file)
for line in f:
    line = line.split()
    dict[line[0]] = line[1:]
f.close()

答案 2 :(得分:1)

怎么样:

def makeDict(filename):
    with open(filename) as f:
        return {row[0]: [float(x) for x in row[1:]] 
                for row in (line.rstrip().split() for line in f)}

要打破它...在这里我们正在阅读这些行并将它们拆分为空白

(line.rstrip().split() for line in f)

然后我们迭代它并将第一个项目作为键,同时将所有其他项目转换为浮点数。

答案 3 :(得分:0)

基本上,读入文件,拆分空格,然后使用字典理解创建字典。

MockingDetails

答案 4 :(得分:0)

将pandas导入为pd

d = pd.DataFrame({'col1header':list1,'col2header':list2},index = namelist)

假设namelist = [james,tom,ryan]