输出从转换列表迭代到字典

时间:2017-10-10 17:04:39

标签: python python-2.7 list loops

这是我的输入txt文件的摘录(完整文件大约有8k个观察结果),包含由制表符分隔的3个元素(名称,某些标识符,年份):

steve jobs      7653596   2007
john hancock    7653596   2007

我尝试使用以下命令将列表放在字典中:

dictList = []
with open('filename.txt') as fo:
    for line in fo:
        elements = line.rstrip().split('\t')[0:]
        dictList.append(dict(zip(elements[0::3], elements[1::2])))
        print dictList

执行上述操作后的输出:

{'steve jobs': '7653596'}
{'steve jobs': '7653596', 'john hancock': '7653596'}

我不确定为什么输出会从第一项中获得结果,然后是第二项。我只需要从输出生成的最后一行。知道我应该怎么做吗?

1 个答案:

答案 0 :(得分:0)

您正在循环的每次迭代中而不是在循环之后打印字典。只是缩进它,你应该没问题:

dictList = []
with open('filename.txt') as fo:
    for line in fo:
        elements = line.rstrip().split('\t')[0:]
        dictList.append(dict(zip(elements[0::3], elements[1::2])))

    print dictList # Here