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

如何从三层嵌套列表生成两种特定格式的非扁平化列表

解决三层嵌套列表的两个处理需求

给定三层嵌套列表:

test_list = [
    [['1']], 
    [['2', '2']], 
    [['3', '3'], ['4', '4'], ['5', '5'], ['6', '6']], 
    [['7', '7'], ['8'], ['7'], ['1'], ['7', '7']], 
    [['7', '7'], ['8'], ['7'], ['7', '7']], 
    [['2', '2']]]

需求1:简化单元素外层列表,保留多元素嵌套结构

实现思路

遍历原列表的每个外层元素:如果该元素仅包含一个子列表,则直接提取这个子列表;如果包含多个子列表,则保留原嵌套结构。

代码实现

test_list = [
    [['1']], 
    [['2', '2']], 
    [['3', '3'], ['4', '4'], ['5', '5'], ['6', '6']], 
    [['7', '7'], ['8'], ['7'], ['1'], ['7', '7']], 
    [['7', '7'], ['8'], ['7'], ['7', '7']], 
    [['2', '2']]]

# 处理需求1
new_list1 = [item[0] if len(item) == 1 else item for item in test_list]

# 打印结果
for elem in new_list1:
    print(elem)

输出结果

['1']
['2', '2']
[['3', '3'], ['4', '4'], ['5', '5'], ['6', '6']]
[['7', '7'], ['8'], ['7'], ['1'], ['7', '7']]
[['7', '7'], ['8'], ['7'], ['7', '7']]
['2', '2']

需求2:按规则去重生成新列表

实现思路

对原列表的每个外层元素做如下处理:

  1. 遍历该元素下的每个子列表,对每个子列表内部去重(保留元素顺序)
  2. 提取每个去重后子列表的唯一元素,按原顺序组成一个新列表
  3. 将所有处理后的新列表汇总成最终结果

代码实现

test_list = [
    [['1']], 
    [['2', '2']], 
    [['3', '3'], ['4', '4'], ['5', '5'], ['6', '6']], 
    [['7', '7'], ['8'], ['7'], ['1'], ['7', '7']], 
    [['7', '7'], ['8'], ['7'], ['7', '7']], 
    [['2', '2']]]

# 处理需求2
new_list2 = []
for item in test_list:
    processed = []
    for sublist in item:
        # 子列表去重,保留顺序
        unique_val = list(dict.fromkeys(sublist))[0]
        processed.append(unique_val)
    new_list2.append(processed)

# 打印结果
for elem in new_list2:
    print(elem)

输出结果

['1']
['2']
['3', '4', '5', '6']
['7', '8', '7', '1', '7']
['7', '8', '7', '7']
['2']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:35:20