以下是一种解法:
import random
grades = ["不及格", "及格", "中等", "良好"]
students = [random.choice(grades) for _ in range(50)]
# 统计各级别的人数
grade_counts = {grade: students.count(grade) for grade in grades}
# 按照各级别人数大小峰字输出
sorted_grades = sorted(grade_counts.items(), key=lambda x: x[1], reverse=True)
for grade, count in sorted_grades:
print("{}: {}".format(grade, count))
解释:
首先,我们使用列表推导式和 random.choice
函数生成了一个长度为50的列表 students
,其中每个元素是四个等级中的一个。然后,我们使用字典推导式和 list.count
方法统计了各个等级的人数,保存在字典 grade_counts
中。最后,我们使用 sorted
函数和 lambda
表达式对 grade_counts
中的项进行排序,并按照格式输出各个等级及其人数。
Python中,使用re
模块中的函数通过正则表达式成功匹配后,多数函数的返回值都是match object
,而不是直接以字符串的形式返回匹配得到的结果(如本文后面将介绍的search()
函数等)。
进一步地,可通过match object
的一系列方法,对匹配得到的结果进行操作,如获取匹配出的字符串等。