添加不同的數據,以不同的字典所以,我有一個文本文件,它看起來像:從文本文件
AUD_CHF 0.77324
AUD_EUR 0.72657
AUD_GBP 0.61557
AUD_JPY 86.88
AUD_USD 0.76835
CAD_EUR 0.722459831
CAD_GBP 0.612726326
CAD_CHF 0.76915
CHF_EUR 0.939858457
CHF_GBP 0.795924865
我想要做的就是通過它來讀取,並把每一種貨幣到它自己的字典如。 AUD {AUD_CHF: 0.77324, AUD_EUR :0.72657 AUD_GBP :0.61557 AUD_JPY :6.88, AUD_USD :0.76835}
然後是瑞士法郎,美元等。完成後將會有18本字典。我設法用下面的代碼來做到這一點(對另一個問題有一些幫助),但是我知道它很長並且不是很pythonic。它看起來像這樣
USD = {}
AUD = {}
CHF = {}
with open('rates.txt', 'r') as f:
for line in f:
split_line = line.split()
if line.startswith('USD'):
USD[split_line[0]] = split_line[1]
elif line.startswith('AUD'):
AUD[split_line[0]] = split_line[1]
elif line.startswith('CHF'):
CHF[split_line[0]] = split_line[1]
我的意思是,它的工作原理,但我不能imagaine沒有更好的方法。我和一位朋友交談,他提出了一個解決方案,它使用了vars(),local()以及我讀過的東西,這不是一件好事,我無法按照我想要的方式工作。我正在考慮某種類型的循環,但我無法得到任何進展。如果有人有任何想法讓我嘗試,我會很感激。即使它只是一個骨架,所以我可以去嘗試使它工作。
感謝您的時間,道歉這有點長。
我從來沒有聽說過的defaultdic。我有一些閱讀要做,謝謝,非常需要學習。 我輸入它並從第7行得到'ValueError:需要超過0個值才能解包'。基於[link](http://stackoverflow.com/questions/13891813/valueerror-need-more-than-0-values -to-unpack-python-lists)和[link](http://stackoverflow.com/questions/12687158/valueerror-need-more-than-0-values-to-unpack)(或者它是我做過的事情?)我改變了它,它貫穿始終。 '打印貨幣'不會返回字典,我不確定你是如何得到你的「結果」的。再次感謝,真的很感激你的時間。 – Pale
@pale看到編輯,你的一行不符合第一個空格分隔,這是它所期望的。如果遇到這種情況,「貨幣」將不會有任何東西。 – salparadise
我創建的數據集有兩個導致錯誤的重複項。我搜索了這個錯誤,在任何階段都沒有表明它是來自不良數據......這就是你如何學習,我猜。 @salparadise你的代碼是如此簡潔....我到處都有東西。再次感謝您幫助我。 – Pale