以下是一个示例代码,演示了如何按对象属性分组:
from itertools import groupby
# 定义一个对象类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建一些对象
persons = [
Person("Alice", 25),
Person("Bob", 30),
Person("Charlie", 25),
Person("David", 30)
]
# 按年龄分组
grouped_persons = groupby(persons, lambda x: x.age)
# 遍历每个组
for key, group in grouped_persons:
print(f"Age: {key}")
for person in group:
print(f"Name: {person.name}")
输出结果将是:
Age: 25
Name: Alice
Name: Charlie
Age: 30
Name: Bob
Name: David
在上面的示例中,我们创建了一个Person
类,该类具有name
和age
属性。然后我们创建了一个persons
列表,其中包含了几个Person
对象。
我们使用groupby
函数将persons
列表按照年龄进行分组。groupby
函数接受一个可迭代对象和一个用于分组的键函数。在这个示例中,我们使用lambda x: x.age
作为键函数,表示按照对象的age
属性进行分组。
最后,我们遍历每个组,并输出每个组中的对象的属性。
下一篇:按对象属性过滤对象数组