|--题目
写一个函数,将两个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')