以下是一个例子,展示了如何按照某个属性选择分组行。
假设有一个名为students
的列表,其中包含多个学生对象。每个学生对象都有name
和grade
属性。我们要按照学生的年级进行分组。
# 定义学生类
class Student:
def __init__(self, name, grade):
self.name = name
self.grade = grade
# 创建学生列表
students = [
Student("小明", 5),
Student("小红", 4),
Student("小刚", 5),
Student("小花", 3),
Student("小李", 4)
]
# 创建一个空字典用于存储分组
grouped_students = {}
# 按照年级进行分组
for student in students:
if student.grade in grouped_students:
grouped_students[student.grade].append(student)
else:
grouped_students[student.grade] = [student]
# 打印分组结果
for grade, students in grouped_students.items():
print(f"年级 {grade}:")
for student in students:
print(student.name)
print()
输出结果为:
年级 5:
小明
小刚
年级 4:
小红
小李
年级 3:
小花
以上代码通过创建一个空字典grouped_students
来存储分组结果。然后,遍历学生列表,如果学生的年级已经在字典中存在,则将学生添加到相应年级的列表中;否则,创建一个新的列表,并将学生添加到该列表中。最后,遍历字典,打印出每个年级的学生列表。