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