我正在尝试使用 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
提交
取消
