python--面试题01

|--题目

写一个函数,将两个dict(key是数字,value是string)进行合并,函数返回合并后的dict。
规则如下:如果一个key仅仅存在于其中一个dict中,则直接加入合并后的dict;
如果一个key在两个dict中都存在,那么给定一个choice值,choice可以是任何string,
如果choice是任一个dict中的value,则写入,否则不写入。

 1 #!/usr/bin/python3
 2 
 3 def function(lefdict,rightdict,choice):
 4     samelist = lefdict.keys() & rightdict.keys() #dict.keys()返回的是一个可迭代对象,取两个dict的keys的交集
 5     diflist = lefdict.keys() ^ rightdict.keys()  #取两个dict的keys的不同集
 6     newdict = {}
 7     for key, value in lefdict.items():
 8         if key in diflist:
 9             newdict[key] = value
10         elif key in samelist:
11             if value == choice:
12                 newdict[key] = value
13     for key, value in rightdict.items():
14         if key in diflist:
15             newdict[key] = value
16         elif key in samelist:
17             if value == choice:
18                 newdict[key] = value
19     print(samelist, diflist)
20     print(newdict)
21     return newdict
22     
23 function({1: 'a', 2: 'b', 3: 'c'}, {4: 'f', 2: 'b', 3: 'd'}, 'b')

猜你喜欢

转载自www.cnblogs.com/xuzhaoping/p/10965571.html
今日推荐