北邮 7-3 字典合并与排序 (10分)

用户分两行输入两个字典,格式参照输入要求;请设计程序实现:
将两个字典合并为一个字典,如果两个字典中分别有相同的键(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}


解析

需要注意的地方在于:

  1. 字典的输入方式:eval函数

  2. 字典的排序,此处实现转化为元组的列表,然后进行排序

     		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)
  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值