You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对嵌套列表中的同类型元素进行分组?

如何对嵌套列表中的同类型元素进行分组?

看起来你想要把第一个元素相同的子列表归为一组对吧?你的思路方向是对的,但问题出在每次循环都重新创建了空列表l,导致每个元素都只能单独进一个新列表,没法累积同类型的元素。下面给你几种可行的解决方法:


方法一:用字典做中间存储(最直观)

字典的键可以用来存分组标识(也就是子列表的第一个元素A/B/C),值用来存对应分组的所有子列表,最后把字典的值转成列表就是你要的格式:

pairs = [['A', 'berries'], ['A', 'bananas'], ['B', 'apples'], ['C', 'oranges'], ['C', 'apricots'], ['C', 'tomatoes']]

# 初始化空字典存储分组
grouped_dict = {}
for item in pairs:
    group_key = item[0]
    # 如果当前分组标识不在字典里,先创建空列表
    if group_key not in grouped_dict:
        grouped_dict[group_key] = []
    # 将当前子列表添加到对应分组中
    grouped_dict[group_key].append(item)

# 把字典的所有值转换成目标嵌套列表格式
final_result = list(grouped_dict.values())
print(final_result)

运行这段代码后,输出就是你想要的:

[[['A', 'berries'], ['A', 'bananas']], [['B', 'apples']], [['C', 'oranges'], ['C', 'apricots'], ['C', 'tomatoes']]]

方法二:用itertools.groupby(简洁高效)

Python标准库的itertools.groupby专门用来做分组,但要注意必须先按分组键排序——因为它只会把连续的相同键元素归为一组:

from itertools import groupby

pairs = [['A', 'berries'], ['A', 'bananas'], ['B', 'apples'], ['C', 'oranges'], ['C', 'apricots'], ['C', 'tomatoes']]

# 先按子列表第一个元素排序,确保同类型元素连续
sorted_pairs = sorted(pairs, key=lambda x: x[0])
# 按第一个元素分组
groups = groupby(sorted_pairs, key=lambda x: x[0])
# 把每个分组转换成列表,收集到结果中
final_result = [list(group) for _, group in groups]
print(final_result)

方法三:手动跟踪当前分组(适合理解逻辑)

如果不想用字典或标准库,也可以手动跟踪当前分组的标识和内容,逐步构建结果:

pairs = [['A', 'berries'], ['A', 'bananas'], ['B', 'apples'], ['C', 'oranges'], ['C', 'apricots'], ['C', 'tomatoes']]

final_result = []
# 处理空列表的情况
if not pairs:
    print(final_result)

# 初始化第一个分组
current_key = pairs[0][0]
current_group = [pairs[0]]

# 从第二个元素开始遍历
for item in pairs[1:]:
    if item[0] == current_key:
        # 同类型,加入当前分组
        current_group.append(item)
    else:
        # 不同类型,把当前分组加入结果,然后开始新分组
        final_result.append(current_group)
        current_key = item[0]
        current_group = [item]
# 别忘了把最后一个分组加入结果
final_result.append(current_group)
print(final_result)

备注:内容来源于stack exchange,提问作者J Do

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:59:37