下面是一个示例代码,用于按照相同属性分组的对象创建字符串:
def create_group_string(objects, attribute):
group_dict = {} # 用于存储按属性分组的对象
for obj in objects:
key = getattr(obj, attribute) # 获取对象的属性值作为分组的键
if key not in group_dict:
group_dict[key] = []
group_dict[key].append(obj) # 将对象添加到对应的分组中
group_strings = []
for key, group in group_dict.items():
group_string = f'{key}: ' # 创建分组字符串的开始部分,以属性值为开头
object_strings = [str(obj) for obj in group] # 将分组中的对象转为字符串
group_string += ', '.join(object_strings) # 将对象字符串用逗号连接起来
group_strings.append(group_string) # 将分组字符串添加到结果列表中
result = '\n'.join(group_strings) # 将所有分组字符串用换行连接起来
return result
# 示例用法
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f'{self.name} ({self.age} years old)'
people = [
Person('John', 25),
Person('Jane', 30),
Person('Tom', 25),
Person('Sarah', 30)
]
result = create_group_string(people, 'age')
print(result)
这个示例代码将一个包含Person
对象的列表按照age
属性进行分组,并将每个分组中的对象转为字符串后连接起来。输出结果如下:
25: John (25 years old), Tom (25 years old)
30: Jane (30 years old), Sarah (30 years old)
上一篇:按相同顺序合并表格
下一篇:按相同索引对Python列表排序