簡體   English   中英

將文本文件讀入字典

[英]Read Text File into Dictionary

如何逐行讀取文本文件,並將奇數行分配給字典的鍵,將偶數行分配給字典的值? 例如,如何使下面的新行分隔列表:

A
B
C
D
E
F
G
H

像這樣進入字典:

dict{"A":"B","C":"D","E":"F","G":"H"}
with open(filename, 'r') as f:
    d = {}
    for line in f:
        d[line.strip()] = next(f, '').strip()

注意:如果文件的行數為奇數,則最后一個鍵的值為空。 如果您希望引發異常,請將next(f, '')更改為next(f) 如果您希望使用其他默認值,請將next(f, '')更改為next(f, 'default')

其他方式:

with open(filename, 'r') as f:
    d = {k.strip():v.strip() for k, v in zip(f, f)}

請注意,如果文本文件的行數為奇數,它將刪除最后一個鍵。

要在行數奇數時保留最后一個鍵,請執行以下操作:

from itertools import izip_longest, imap
with open(filename, 'r') as f:
    f = imap(str.strip, f)
    d = dict(izip_longest(f, f, fillvalue='default'))

實際上,您只需要讀入一個文件並循環瀏覽即可。 如果一行是奇數,請記住它作為值,如果一行是偶數,則以該行為鍵將其追加到字典中。

import sys
import numpy as np

fn=sys.argv[1]

d={}

with open(fn,'rb') as f:

for i,line in enumerate(f):

    if np.mod(i+1,2)==0:
        d[lastVal]=line.replace('\n','')
    else:   
        lastVal=line.replace('\n','')

print d         

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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