Python 3.7.1
题目:生成包括N(=1000)个0-100之间的随机分数,统计其中各个分数出现的次数,按照出现次数的从高到低的顺序(不包括出现次数为0的分数)打印出来。首先采用每行:分数 次数格式输出其次每行: 次数:分数1、分数2.... 的格式输出最终是下面这种输出结果
import random
score_num = {}
for _ in range(1000):
score = random.randint(1, 100)
score_num[score] = score_num.get(score, 0) + 1
num_scores = {}
for score, num in sorted(score_num.items(), key=lambda sn: (-sn[1], sn[0])):
print(f'{score}\t{num}')
if num in num_scores:
num_scores[num].append(str(score))