python课后练习

img


我感觉很无助,总是不知道该怎么应对,谁来替我解答一下,谢谢!救命了!

以下是一种解法:

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 中的项进行排序,并按照格式输出各个等级及其人数。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^