我正在嘗試使用 python 文件系統讀取和寫入文件,但我遇到了一些問題。我相信閱讀/打開功能是正確的,但寫作功能讓我很難受。我在一個反轉字典的函數中執行它,我希望它從文本文件中讀取字典而不是在代碼中執行它,這是我調用它的方式(不漂亮但有效):d = fin = open('dict.txt')但是,在將倒排字典寫入文件時,我失敗了。打印倒置 dict 的函數調用是invert_dict(d)所以我想我應該嘗試這樣寫:invert_dict(d) = fout = open('output.txt', 'w')這顯然是錯誤的,但這是我從一本書中得到的。這是我的原始反轉字典函數:def invert_dict(d): print(' the dictionary is \n' , d) inverse = dict() for key in d: val = d[key] for i in val: if i not in inverse: inverse[i] = [key] else: inverse[i].append(key) return inversed={'vowels':['a','e','i','o','u'], 'letters':['a','b','c','d']}print(invert_dict(d))我應該如何改進我的代碼?提前致謝。
1 回答

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
你的代碼很好,只是使用items循環更好,也setdefault更容易:
def invert_dict(d):
print(' the dictionary is \n' , d)
inverse = {}
for k,v in d.items():
for i in v:
inverse.setdefault(i,[]).append(k)
return inverse
編輯:
之前誤解了,所以你應該使用:
import json
d = fin = json.loads(open('dict.txt'))
with open('output.txt', 'w') as fout:
fout.write(invert_dict(d))
添加回答
舉報
0/150
提交
取消