PAT (Basic Level) Practice 1100校庆 Python

这道题看起来思路比较清晰,首先判断出参加校庆的校友数,然后对生日进行字典排序

try-except特殊用法: 用try-except替代if-else进行校友的判断

sys模块:在输入量较大时,sys输入比input要快很多,sys模块输入不处理换行符

operator模块: 提供了各种运算函数,比python的内置运算符效率高

代码如下:

import sys
import operator
in_1 = int(sys.stdin.readline())
dict_1,dict_2 = {},{}
is_0 = 0
for i in range(in_1):
    dict_1[sys.stdin.readline()] = '1'
in_2 = int(sys.stdin.readline())
for j in range(in_2):
    try :
        in_dict2 = sys.stdin.readline()
        e = dict_1[in_dict2]
        dict_2[in_dict2[6:14]] = ('1',in_dict2[0:18])
    except KeyError:
        is_0 = is_0 + 1
        dict_2[in_dict2[6:14]] = ('0',in_dict2[0:18])
last_set = sorted(dict_2.items(),key=operator.itemgetter(0),reverse=False)
print(in_2-is_0)
if in_2-is_0==0:
    for x in last_set:
        if x[1][0]=='0':
            print(x[1][1])
            break
else:
    for x in last_set:
        if x[1][0]=='1':
            print(x[1][1])
            break 

可以看出是比较省时的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值