[英]How to extract separate nth lines from a txt file and assign them to key:value pairs in python 3?
我正在學習如何編碼,但遇到了無法解決的問題。 我有一個文本文件,必須從中創建三個字典:
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()
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}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.