如何从txt文件中提取第n行并将其分配给key:value pairs 在python 3中?

2024-03-29 06:53:16 发布

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

我正在学习如何编码,但遇到了一个我没有答案的问题。我有一个文本文件,我必须从中制作三本字典:

Georgie Porgie
87%
$$$
Canadian, Pub Food

Queen St. Cafe
82%
$
Malaysian, Thai

对于这个线程,我只想问如何提取每个文本块的第一行并将其存储为键,将每个块的第二行存储为值?我应该只使用基本函数和循环来编写代码

以下是我的代码(打开文件后):

d = {}
a = 0
for i in file:
    d[i] = i + 1
    a = i + 5
return(d)

谢谢你


Tags: 答案代码编码字典cafefoodst文本文件
1条回答
网友
1楼 · 发布于 2024-03-29 06:53:16

首先,您必须读取文件:

with open("data.txt") as file:
    lines = file.readlines()

with子句确保它在读取后关闭。接下来,根据您的描述,如果index % 5为0,则一行包含一个键。然后,下一行包含该值。仅使用语言的“基本”元素,您就可以这样构建词典:

dic = {lines[idx].strip(): lines[idx + 1].strip() 
       for idx in range(0, len(lines), 5)}

这是一本字典的理解,也可以展开写

现在还可以先压缩键和值,这样就可以很容易地迭代它们。这使词典的理解更具可读性。不过,由于我们想消除换行符,所以剥离方法是必要的

entries = zip(lines[::5], lines[1::5])
dic = {key.strip(): value.strip() for key, value in entries}

相关问题 更多 >