从文本文件创建编号列表



我希望将文本文件中的名称列表转换为字典,名称前面的数字作为列表。

文本文件:

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'}

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

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

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")))

试试这个:

import csv
# Create a dictionary that will contain the file data
dic = {}
# Open the file and read it
with open('data.txt', 'r') as fd:
# contain file in a list
reader = csv.reader(fd)
# Create a counter that will be the key of a line in the file
count = 1
for row in reader:
dic[count] = row[0]
count += 1
print(dic)

您应该在循环上方而不是内部初始化a=0。你的代码应该是

numbered_dict = {}
namelist = open("data.txt")
a=0
for line in namelist:
a+=1
numbered_dict[a]=line
import ast
with open('data.txt') as file:
data=file.read()
numbered_dict=ast.literal_eval(data)
print(numbered_dict)

输出:

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

你可以在这里阅读其他几种方法:

https://www.geeksforgeeks.org/how-to-read-dictionary-from-file-in-python/

最新更新