以下是一个示例代码,演示如何按照数组对象列表对对象进行分组:
from itertools import groupby
# 定义一个对象类
class Obj:
def __init__(self, name, group):
self.name = name
self.group = group
# 创建对象列表
objects = [
Obj("obj1", "group1"),
Obj("obj2", "group1"),
Obj("obj3", "group2"),
Obj("obj4", "group2"),
Obj("obj5", "group3")
]
# 按照对象的group属性进行分组
grouped_objects = {}
for key, group in groupby(objects, lambda x: x.group):
grouped_objects[key] = list(group)
# 打印分组结果
for key, group in grouped_objects.items():
print(f"Group {key}:")
for obj in group:
print(f" {obj.name}")
运行以上代码,输出结果如下:
Group group1:
obj1
obj2
Group group2:
obj3
obj4
Group group3:
obj5
以上代码使用了 itertools
模块中的 groupby
函数,该函数可以根据指定的键函数对对象进行分组。在示例中,我们定义了一个对象类 Obj
,并创建了一个对象列表 objects
。然后使用 groupby
函数按照对象的 group
属性进行分组,将分组结果存储在字典 grouped_objects
中。最后,遍历字典并打印分组结果。
上一篇:按照数组的索引对类的列表进行排序
下一篇:按照数组对象中存在的键进行排序