m0_60668551 2021-10-26 23:42 采纳率: 66.7%
浏览 20
已结题

造一个函数求两个字典的差异并更新空字典

给定两个字典A 和B
如果A中的key也在B中,且该key在A中的value-在B中的value大于0,则将该key和该value差值加入到一个新字典中,以此类推
如果key仅在A中有,则将该key和对应的value加到该字典中。最后返回这个新字典
比如,如果A={'d': 3, 'e': 1, 'z': 1, 's': 1, 'i': 1, 'r': 1, 'a': 2, 'n': 1, 't': 1},
B={'e': 2, 'x': 1, 'g': 1, 's': 1, 'p': 1, 'i': 1, 't': 1, 'a': 2, 'n': 1, 'r': 1})
新字典应={'z': 1, 'd': 3}

再比如,如果A = {'s': 4, 'm': 1, 'p': 2, 'i': 4},B = {'e': 1, 's': 3, 'm': 1, 'p': 1, 'i': 2, 't': 1},
新字典={'s' : 1, 'p' : 1, 'i' : 2} 需要注意A['m'] - B['m'] == 0因此不加入新字典

我的思路如下,先建一个空字典,在A字典遍历,如果A里的key也在B里,则用key A value-key B value并生成一个变量n,如果变量>0,则将key和n更新到空字典, 否则,将key A和key A value 更新到空字典,最后返回该字典

然而当我输入 count_dict_difference({'d': 3, 'e': 1, 'z': 1, 's': 1, 'i': 1, 'r': 1, 'a': 2, 'n': 1, 't': 1}, {'e': 2, 'x': 1, 'g': 1, 's': 1, 'p': 1, 'i': 1, 't': 1, 'a': 2, 'n': 1, 'r': 1})(即第一个例子时)
python报错并指出如下错误,请问该如何更正呢,多谢!

img

img

  • 写回答

1条回答 默认 最新

  • bekote 2021-10-26 23:48
    关注

    直接collect[key] = n
    collect[key]=A[key]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 修改了问题 10月26日
  • 修改了问题 10月26日
  • 展开全部

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验