1、最初代码
#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''
@File : 1038.py
@Time : 2020/04/20 15:50:24
@Author : Schiller Xu
@Version : 1.0
@License : (C)Copyright 2020-2021, SchillerXu
@Desc : None
'''
n=int(input())
grades=input().split()
points=input().split()
for i in range(1,len(points)-1):
a=grades.count(points[i])
print(a,end=' ')
print(grades.count(points[-1]))
count函数占用的时间过多。
2、改进代码
因为分数范围0-100,所以可以用下标表示分数,但是必须使用int函数,更简便的一种方法是使用字典,“分数:次数”保存数据。
代码如下:
#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''
@File : 1038-1.py
@Time : 2020/07/18 12:42:09
@Author : Schiller Xu
@Version : 1.0
@License : (C)Copyright 2020-2021, SchillerXu
@Desc : None
'''
import sys
n=int(input())
score=input().split()
r=dict()
for s in score:
r[s]=r.get(s,0)+1
points=input().split()
for i in range(1,len(points)-1):
sys.stdout.write(f'{r.get(points[i],0)} ')
sys.stdout.write(f'{r.get(points[-1],0)}\n')