下面是一个示例代码,演示了如何按对象的相同值将它们分组:
from collections import defaultdict
# 定义一个对象类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建对象列表
people = [
Person('Alice', 25),
Person('Bob', 30),
Person('Charlie', 25),
Person('Dave', 30)
]
# 使用 defaultdict 创建一个空的分组字典
groups = defaultdict(list)
# 按相同值的键将对象分组
for person in people:
groups[person.age].append(person)
# 打印分组结果
for age, group in groups.items():
print(f'年龄为 {age} 的人员有:')
for person in group:
print(person.name)
print()
输出结果为:
年龄为 25 的人员有:
Alice
Charlie
年龄为 30 的人员有:
Bob
Dave
在这个示例中,我们首先定义了一个 Person
类来表示一个人的姓名和年龄。然后,我们创建了一个对象列表 people
,其中包含了四个人的信息。
接下来,我们使用 defaultdict(list)
创建了一个空的分组字典 groups
。defaultdict
是 Python 内建的一个类,它会在字典中键不存在时自动创建对应的值。在这里,我们将值初始化为一个空列表。
然后,我们使用 for
循环遍历了 people
列表中的每个人对象。对于每个人,我们将他们的年龄作为键,将该人对象添加到对应的分组列表中。
最后,我们遍历了分组字典 groups
中的每个键值对,并打印了每个年龄分组中的人员姓名。
这样,我们就完成了按照对象相同值的键将它们分组的操作。
上一篇:按相同位置上的字符过滤字符串列表
下一篇:按相同值对列进行分组