将文件转换为以行号为值的字典

问题描述 投票:-1回答:2

我目前正在学习一些Python。因此,假设我有一个包含以下内容的文本文件,每行上都有一个不同的字母:

g
y
k
z
a

我想要实现的是将字母存储为字符串键,并在第一行中使用该行的编号作为从1开始的值。尝试了line.split.strip的不同形式,但是由于每个行只包含键,因此它给出了“没有足够的值要解压(预期2,得到1)”。那么如何从这里开始呢?

d = {}
with open('the_text_file.txt') as f:
    for line in f:
        # *Magic will happen here*
        x = sorted(d.items(), key=...)
        print(x)

最终输出将是类似的东西:

a 5
g 1
k 3
y 2
z 4
python dictionary text-files
2个回答
0
投票

分类和打印部分需要在行处理循环之后发生,而不是在其中进行。

with open('the_text_file.txt') as f:
    d = { c.strip():i for i,c in enumerate(f,1) }
x = dict(sorted(d.items()))
print(x)

-1
投票

尝试一下:

d = {}
with open('the_text_file.txt') as f:
    for idx, line in enumerate(f.readlines()):
        d[line.strip()] = idx
print(d)

或使用列表理解:

with open('the_text_file.txt') as f:
    res = {line: idx for idx, line in enumerate(f.readlines())}
print(res)
© www.soinside.com 2019 - 2024. All rights reserved.