以下是一个示例代码,展示了如何按照板块名称对对象进行分组:
from itertools import groupby
class Object:
def __init__(self, name, section):
self.name = name
self.section = section
# 创建一些对象
objects = [
Object("对象1", "板块A"),
Object("对象2", "板块B"),
Object("对象3", "板块A"),
Object("对象4", "板块B"),
Object("对象5", "板块C"),
]
# 按照板块名称对对象进行分组
objects.sort(key=lambda x: x.section) # 按照板块名称排序
grouped_objects = {key: list(group) for key, group in groupby(objects, key=lambda x: x.section)}
# 打印分组结果
for section, objects in grouped_objects.items():
print(f"板块名称:{section}")
for obj in objects:
print(f"对象名称:{obj.name}")
print()
运行以上代码将输出如下结果:
板块名称:板块A
对象名称:对象1
对象名称:对象3
板块名称:板块B
对象名称:对象2
对象名称:对象4
板块名称:板块C
对象名称:对象5
在示例代码中,我们首先创建了一个Object
类,其中包含了对象的名称和所属板块的属性。然后,我们创建了一些示例对象,并将它们存储在一个列表中。
接下来,我们使用sort
函数将对象列表按照板块名称进行排序。然后,我们使用groupby
函数将排序后的对象列表按照板块名称进行分组,并将分组结果存储在一个字典中。每个板块名称作为字典的键,对应的对象列表作为字典的值。
最后,我们遍历分组结果,并打印出每个板块名称以及对应的对象名称。
上一篇:按照班级进行分组