首页 > 解决方案 > 从文本文件创建编号列表

问题描述

我正在寻找将文本文件中的名称列表转换为字典,名称前面的数字作为列表。

文本文件:

Adam A
Bob B
Charles C

文本文件每行都有一个名称

期望的结果:

{1: 'Adam A', 2: 'Bob B', 3: 'Charles C'}

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

numbered_dict = {}
namelist = open("data.txt")
for line in namelist:
    a=0
    a+=1
    numbered_dict[a]=line

输出是:

{1: 'Charles C'}

出于某种原因,它只取列表中的最后一个名字

任何帮助将不胜感激,谢谢!

标签: pythondictionary

解决方案


for line in namelist:
    a=0
    a+=1
    numbered_dict[a]=line

每次通过您设置a为 0 的循环,然后将其增加到 1。

您必须在循环外初始化变量:

a=0
for line in namelist:
    a+=1
    numbered_dict[a]=line

但是,作为更好的工具,您可以使用dict构造函数和enumerate函数:

numbered_dict = dict(enumerate(open("data.txt")))

推荐阅读