这是我的输入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'}
我不确定为什么输出会从第一项中获得结果,然后是第二项。我只需要从输出生成的最后一行。知道我应该怎么做吗?
答案 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