可以使用 Python 中的 groupby 函数来按照名称进行分组,具体步骤如下:

  1. 首先需要将列表中的元素按照名称进行排序,可以使用 sorted 函数来实现;

  2. 然后使用 groupby 函数来对排序后的列表进行分组,groupby 函数需要传入两个参数,第一个参数是排序后的列表,第二个参数是一个函数,用于指定按照哪个属性进行分组,这里可以使用 lambda 表达式来指定按照名称进行分组;

  3. 最后使用循环遍历分组后的结果,即可按照名称进行分组。

示例代码如下:

from itertools import groupby

# 定义一个 Person 类,包含姓名和年龄两个属性
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 定义一个包含 Person 对象的列表
persons = [
    Person('Tom', 20),
    Person('Jerry', 18),
    Person('Bob', 22),
    Person('Tom', 25),
    Person('Alice', 19),
    Person('Bob', 28)
]

# 按照名称对列表进行排序
persons_sorted = sorted(persons, key=lambda x: x.name)

# 使用 groupby 函数对排序后的列表进行分组
groups = groupby(persons_sorted, key=lambda x: x.name)

# 循环遍历分组后的结果,即可按照名称进行分组
for name, group in groups:
    print(name, list(group))

输出结果如下:

Alice [Person(name='Alice', age=19)]
Bob [Person(name='Bob', age=22), Person(name='Bob', age=28)]
Jerry [Person(name='Jerry', age=18)]
Tom [Person(name='Tom', age=20), Person(name='Tom', age=25)]
Python 列表分组:按名称分类

原文地址: https://www.cveoy.top/t/topic/ol1Q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录