簡體   English   中英

如何從txt文件中提取單獨的第n行並將其分配給python 3中的key:value對?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM