20、字典合并 (10 分)
字典合并。输入用字符串表示两个字典,输出合并后的字典,字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字!
输入格式:
在第一行中输入第一个字典字符串 在第二行中输入第二个字典字符串
输出格式:
在一行中输出合并的字典,输出按字典序。"1"的ASCII吗为49,大于1,排序时1在前,"1"在后,其它的也一样。
输入样例1:
在这里给出一组输入。例如:
{1:3,2:5}
{1:5,3:7}
输出样例1:
在这里给出相应的输出。例如:
{1:8,2:5,3:7}
输入样例2:
在这里给出一组输入。例如:
{"1":3,1:4}
{"a":5,"1":6}
输出样例2:
在这里给出相应的输出。例如:
{1:4,"1":9,"a":5}
dic1=eval(input())
dic2=eval(input())
dic3={**dic1,**dic2}
for k1 in dic1:
b= k1 in dic2.keys()
if b:
dic3[k1]=dic1.get(k1)+dic2.get(k1)
break
c1,c2 = {},{}
for key in dic3.keys():
if type(key) == str:
c1[key] = dic3.get(key)
elif type(key) == int:
c2[key] = dic3.get(key)
ans1=dict(sorted(c1.items()))
ans2=dict(sorted(c2.items()))
num,num1 = 0,0
print("{", end='')
if len(ans2) != 0:
for k, v in ans2.items():
if len(ans1) == 0 and num1 == len(ans2) - 1:
print("{}:{}".format(k, v), end='')
else:
print("{}:{},".format(k, v), end='')
num1 = num1 + 1
if len(ans1) != 0:
for k, v in ans1.items():
if num == len(ans1) - 1:
print(("\""+"%c"+"\""+":"+"%d") % (k, v), end='')
else:
print(("\"" + "%c" + "\"" + ":" + "%d,") % (k, v), end='')
num = num + 1
print("}", end='')