【PTA-python】第5章-11 字典合并 (40 分)--字典排序,字典键值计算

分析

通过ord(x[0])取其 ascii码值。
Python ord() 函数

  • 它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值

数字的ascii就是本身,如果遇到字符,则按ord()进行排序,因此sorted排序函数需要进行一个if类型判断。
d=sorted(a.items(),key=lambda item:item[0] if type(item[0])==int else ord(item[0]))

题目

解法

自解(存在错误)

在这里插入图片描述
输出类型不符合要求,可以看到,如果是字符,最后输出有双引号。

a=eval(input())
b=eval(input())
c={}
for key,value in b.items():
    a[key]=a.get(key,0)+value
d=sorted(a.items(),key=lambda item:item[0] if type(item[0])==int else ord(item[0]))#要对类型判断,依据 ord
print("{",end="")
for i in range(len(d)):
    print("{}:{}".format(d[i][0],d[i][1]),end="")
    if i!=len(d)-1:#遇到最后一个元素,即i==len(d)-1的情况,就不能再输出","
        print(",",end="")
    else:
        print("}")

完善

在这里插入图片描述

a=eval(input())
b=eval(input())
for key,value in b.items():
    a[key]=a.get(key,0)+value
d=sorted(a.items(),key=lambda item:item[0] if type(item[0])==int else ord(item[0]))
print("{",end="")
for i in range(len(d)):
    if type(d[i][0])==int:#判断类型
        print("{}:{}".format(d[i][0],d[i][1]),end="")
    else:
        print('"{}":{}'.format(d[i][0],d[i][1]),end="")
    if i!=len(d)-1:#遇到最后一个元素,即i==len(d)-1的情况,就不能再输出","
        print(",",end="")
    else:
        print("}")
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值