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

如何使用列表推导式循环处理嵌套列表实现格式转换?

列表结构转换需求

原列表:

lst = [[['X', 'A'], 1, 2, 3], [['Y', 'B'],  1, 2, 3], [['Z', 'C'],  1, 2, 3]]

目标转换结果:

new_lst = [['X', 1, 2, 3], ['A', 1, 2, 3], ['Y', 1, 2, 3], ['B',  1, 2, 3], ['Z', 1, 2, 3], ['C',  1, 2, 3]]

你已实现单个子元素的转换逻辑:

lst2 = [['X', 'Y'], 1, 2, 3]
fst, *rest = lst2
new_lst3= [[i, *rest] for i in fst]

执行后得到:new_list3 = [['X', 1, 2, 3], ['Y', 1, 2, 3]]


解决方案

1. 嵌套列表推导式(简洁实现)

基于你已有的单元素转换逻辑,外层嵌套遍历原列表的推导即可:

lst = [[['X', 'A'], 1, 2, 3], [['Y', 'B'],  1, 2, 3], [['Z', 'C'],  1, 2, 3]]
new_lst = [[i, *rest] for item in lst for fst, *rest in [item] for i in fst]

2. 显式循环实现(符合你的需求)

通过两层循环完成:外层遍历原列表的每个元素,内层遍历每个元素的首项子列表,生成新子列表并收集到结果中:

lst = [[['X', 'A'], 1, 2, 3], [['Y', 'B'],  1, 2, 3], [['Z', 'C'],  1, 2, 3]]
new_lst = []

for item in lst:
    fst, *rest = item
    for char in fst:
        new_lst.append([char, *rest])

运行上述代码后,new_lst将完全匹配你期望的结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:50:43