以下是一个示例代码,将列表项按属性分组在一个对象中:
def group_items_by_attribute(items, attribute):
grouped_items = {}
for item in items:
item_attribute = getattr(item, attribute)
if item_attribute in grouped_items:
grouped_items[item_attribute].append(item)
else:
grouped_items[item_attribute] = [item]
return grouped_items
# 示例使用
class Item:
def __init__(self, name, category):
self.name = name
self.category = category
def __repr__(self):
return f"Item(name='{self.name}', category='{self.category}')"
items = [
Item('Item 1', 'Category A'),
Item('Item 2', 'Category B'),
Item('Item 3', 'Category A'),
Item('Item 4', 'Category B'),
Item('Item 5', 'Category C'),
]
grouped_items = group_items_by_attribute(items, 'category')
print(grouped_items)
输出结果:
{
'Category A': [
Item(name='Item 1', category='Category A'),
Item(name='Item 3', category='Category A')
],
'Category B': [
Item(name='Item 2', category='Category B'),
Item(name='Item 4', category='Category B')
],
'Category C': [
Item(name='Item 5', category='Category C')
]
}
以上代码中,我们定义了一个 group_items_by_attribute
函数,该函数接受一个列表 items
和一个属性名 attribute
。函数通过循环遍历列表中的每个项,并使用 getattr
函数获取该项的指定属性值。然后,我们检查该属性值是否已经存在于 grouped_items
字典中,如果存在,则将该项添加到对应的列表中,否则创建一个新的列表,并将该项添加到其中。最终,函数返回一个包含分组项的字典。
上一篇:按属性将div分组