我正在学习如何编码,但遇到了一个我没有答案的问题。我有一个文本文件,我必须从中制作三个字典:
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)
谢谢你。
首先,您必须阅读文件:
with open("data.txt") as file:
lines = file.readlines()
在与子句确保它被读取后,它关闭。接下来,根据您的描述,如果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}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句