用户分两行输入两个字典,格式参照输入要求;请设计程序实现:
将两个字典合并为一个字典,如果两个字典中分别有相同的键(key),需将对应的值相加后作为字典中该键对应的新值。
输入格式:
用两行输入字典格式的两个数据,字典中键的数据类型统一为数字或字符,字典中值的数据均为数字。
输出格式:
输出合并后的字典数据,字典数据要求按照键的增序排列。
输入样例1:
输入1:
{1:2,3:9,5:2,6:2}
{2:1,6:3,7:9,1:4}
输出样例1:
输出1:
{1: 6, 2: 1, 3: 9, 5: 2, 6: 5, 7: 9}
输入样例2:
输入2:
{‘c’:3,‘a’:4,‘n’:1}
{‘a’:3,‘c’:7,‘b’:10}
输出样例2:
输出2:
{‘a’: 7, ‘b’: 10, ‘c’: 10, ‘n’: 1}
解析
需要注意的地方在于:
-
字典的输入方式:
eval
函数 -
字典的排序,此处实现转化为元组的列表,然后进行排序
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
a=eval(input())
dic=eval(input())
for key1, value1 in a.items():
if key1 in dic:
dic[key1] += value1
else:
dic[key1] = value1
dic = sorted(zip(dic.keys(),dic.values())) #打包成元组进行排序
d={}
for i in range(len(dic)):
d[dic[i][0]] = dic[i][1]
print (d)