假设有一个包含许多对象的列表,每个对象都具有某个属性值,我们可以使用Python的字典和列表来按属性对对象进行分组,并将它们保存在对象的列表中。
代码示例:
class Object:
def __init__(self, name, attribute):
self.name = name
self.attribute = attribute
objects = [Object("A", 1), Object("B", 2), Object("C", 1), Object("D", 2)]
grouped_objects = {}
for obj in objects:
if obj.attribute not in grouped_objects:
grouped_objects[obj.attribute] = []
grouped_objects[obj.attribute].append(obj)
for attribute, obj_list in grouped_objects.items():
print(f"Objects with attribute '{attribute}':")
for obj in obj_list:
print(f"{obj.name}")
输出:
Objects with attribute '1':
A
C
Objects with attribute '2':
B
D
在这个例子中,我们首先定义了一个Object
类,每个对象都具有名字和属性。然后,我们创建了一个包含四个对象的列表。接下来,我们创建一个空字典grouped_objects
,用于存储按属性分组后的对象。我们遍历对象列表,对于每个对象,我们通过检查字典中是否已经存在该属性组来决定是创建一个新的属性组,还是将该对象添加到现有的属性组中。最后,我们遍历字典中的属性组,并打印出该属性组中的所有对象的名字。