一道python面试题,求正确答案

汇讯猎头 2020-08-24 05:58:41
用python实现以下函数(30分钟):
合并dict
def merge_dict(source_dict, update_dict) -> dict
例:a = { 'a': 'a', 'b': 'b' }
b = { 'b': 'c', 'c': { 'd': 'd' }}
result = merge_dict(a, b) // result = { 'a': 'a', 'b': 'c', 'c': { 'd': 'd' } }
注意:
考虑嵌套情况的处理
需检查各种异常、冲突、特殊值,并抛出合适异常
代码需要可以正确编译执行
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
庸了个白 2020-08-25
  • 打赏
  • 举报
回复
没想到前面有人写了,这个回帖要审核,一般0-20min,相差几分钟其实是看不到前面的
庸了个白 2020-08-25
  • 打赏
  • 举报
回复
例:a = { 'a': 'a', 'b': 'b' }
b = { 'b': 'c', 'c': { 'd': 'd' }}
result = merge_dict(a, b) // result = { 'a': 'a', 'b': 'c', 'c': { 'd': 'd' } }


按照你这个result,可以看出,键值对以后来的为准,也就是说,如果有重复直接覆盖。
如果要实现这个,一句就够了, a.update(b)
chuifengde 2020-08-25
  • 打赏
  • 举报
回复
a.update(b)
weixin_45903952 2020-08-25
  • 打赏
  • 举报
回复
b = { 'b': 'c','c':{ 'd': 'd' }} a = { 'a': 'a', 'b': 'b' } for item,value in b.items(): a[item]=value print(b) print(a)
weixin_45903952 2020-08-25
  • 打赏
  • 举报
回复
遍历两个字典,如果新字典中有新值,就用新值替换老字典中的值就行了
  • 打赏
  • 举报
回复
def merge_dict(source_dict:dict, update_dict:dict):
    for key in source_dict.keys():
        if key not in update_dict.keys():
            update_dict[key]=source_dict[key]

    print(update_dict)

if __name__ == '__main__':
    a={'a': 'a', 'b': 'b'}
    b={ 'b': 'c',  'c': { 'd': 'd' }}
    merge_dict(a,b)
这样吧!另外,还有一些不足,异常、特殊值具体是什么,不知道,原谅小白我算法不行啊!
汇讯猎头 2020-08-25
  • 打赏
  • 举报
回复
没关系,十分感谢!

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧