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

如何从嵌套列表提取编号为标题并按集合分组打印列表内容

问题:按集合分组打印嵌套列表数据

我有一个存储在SetHistory变量中的嵌套列表数据,格式为[[输入列表], 集合编号],示例数据如下:

SetHistory = [[[12, 11, 1], 1], [[12, 6, 2], 1], [[8, 7, 1], 1], [[6, 6, 1], 2]]

我的需求是按集合编号分组打印,输出格式如下:

Starting with set 1: 12, 11, 1 12, 6, 2 8, 7, 1
Starting with set 2: 6, 6, 1

但当前的代码会重复打印每个子列表对应的集合标题,输出变成了:

Starting with set 1
The Following appear:12,11,1
Starting with set 1
The Following appear:12,6,2...

我尝试过用if语句、while循环都没解决,现有代码如下:

SetHistory = [[[12, 11, 1], 1], [[12, 6, 2], 1], [[8, 7, 1], 1], [[6, 6, 1], 2]]
for Results, Set_Number in SetHistory:
    UnpackResults = [Results]
    UnpackSet = [Set_Number]
    for i in UnpackSet:
        print(f'Starting with set {Set_Number}')
    for i, v, x in UnpackResults:
        print(f'The Following appear:{i},{v},{x} ')

请帮忙实现正确的分组打印格式。


解决方案

核心思路是先按集合编号把数据分组,然后再遍历每个分组统一打印标题和对应的所有子列表,这样就不会重复输出标题了。这里可以用字典来存储分组后的结果,键是集合编号,值是该集合下的所有输入列表。

修正后的代码如下:

SetHistory = [[[12, 11, 1], 1], [[12, 6, 2], 1], [[8, 7, 1], 1], [[6, 6, 1], 2]]

# 第一步:按集合编号分组数据
grouped_data = {}
for results, set_num in SetHistory:
    # 如果集合编号不在字典里,先创建一个空列表
    if set_num not in grouped_data:
        grouped_data[set_num] = []
    # 将当前结果添加到对应集合的列表中
    grouped_data[set_num].append(results)

# 第二步:遍历分组后的数据,按要求格式打印
for set_num, results_list in sorted(grouped_data.items()):
    # 把每个子列表转换成逗号分隔的字符串,再用空格连接起来
    formatted_results = " ".join([", ".join(map(str, res)) for res in results_list])
    print(f'Starting with set {set_num}: {formatted_results}')

代码解释:

  1. 分组数据:用字典grouped_data把同一个集合编号的所有输入列表收集到一起,比如集合1对应的列表就是[[12,11,1], [12,6,2], [8,7,1]]。
  2. 格式化输出:
    • 用map(str, res)把列表里的数字转成字符串,再用", ".join()拼成逗号分隔的格式;
    • 再用" ".join()把所有子列表的字符串用空格连接起来;
    • 最后按照要求的格式打印标题和拼接好的结果。

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

Starting with set 1: 12, 11, 1 12, 6, 2 8, 7, 1
Starting with set 2: 6, 6, 1

内容的提问来源于stack exchange,提问作者Llew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:40:53