簡體   English   中英

將文本文件的內容讀入字典

[英]Read contents of a text file into a dictionary

我的文本文件的內容如下:

a 0 45 124 234 53 12 34
a 90 294 32 545 190 87
a 180 89 63 84 73 63 83

如何將內容讀入字典,使a0成為鍵,其余內容作為值。 我希望我的字典看起來像這樣:

{a0: [45, 124, 234, 53, 12, 34], a90: [294, 32, 545, 190, 87], a180: [89, 63, 84, 73, 63, 83]}

我嘗試了常規方法,刪除定界符,然后將其存儲在字典中,如下所示

newt = {}
newt = {t[0]: t[1:] for t in data}

但是這里我只有a作為關鍵

這可能會幫到您(畢竟是聖誕節的時候)

d = {}
with open("dd.txt") as f:
    for line in f:
        els = line.split()
        k = ''.join(els[:2])
        d[k] = list(map(int,els[2:]))
print(d)

輸入文件為

a 0 45 124 234 53 12 34
a 90 294 32 545 190 87
a 180 89 63 84 73 63 83

它產生

{'a90': [294, 32, 545, 190, 87],
 'a180': [89, 63, 84, 73, 63, 83],
 'a0': [45, 124, 234, 53, 12, 34]}

它實質上從文件中讀取每一行,然后將其拆分為大塊,忽略空白。

然后,它使用前兩個元素組成鍵,其余部分使用組成列表,將每個元素轉換為整數。

我假設您希望數字為整數。 如果希望它們作為字符串,則可以忽略到int的轉換。

d[k] = els[2:]

如果您喜歡單線(同類):

with open('my_file.txt') as f:
    res = {''.join(r.split(None, 2)[:2]): [int(x) for x in r.split()[2:]] for r in f}

>>> res
{'a0': [45, 124, 234, 53, 12, 34],
 'a180': [89, 63, 84, 73, 63, 83],
 'a90': [294, 32, 545, 190, 87]}

暫無
暫無

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

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