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

2024-09-29 00:18:43 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的输入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'}

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


Tags: 文件txt名称元素linejobs标识符elements
1条回答
网友
1楼 · 发布于 2024-09-29 00:18:43

在循环的每次迭代中而不是在循环之后打印字典。只需将其缩进即可:

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

相关问题 更多 >