为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确写入带有 fout 功能的输出?

如何正确写入带有 fout 功能的输出?

潇潇雨雨 2021-12-17 16:27:20
我正在尝试使用 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))


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 325 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号