Python嵌套列表转换问题:将Ii02转为目标多层嵌套列表
解决Python嵌套列表转换问题
你的需求是将二维列表Ii02转换为指定的三层嵌套列表结构,但现有代码存在两个问题:
- 每次循环都会重新赋值
Ii03,导致之前的处理结果被覆盖,最终只能输出最后一次循环的内容 - 额外多套了一层外层列表,不符合预期结构
修正后的代码(循环方式)
Ii02 = [[[0, 1], [0, 2], [1, 3], [4, 3], [2, 4]], [[0, 1], [0, 2], [1, 3], [4, 3], [3, 4], [2, 5]]] Ii03 = [] for sublist in Ii02: # 对每个子列表中的元素套一层列表,再将处理后的子列表加入Ii03 processed_sublist = [[i] for i in sublist] Ii03.append(processed_sublist) print(Ii03)
简化写法(列表推导式)
如果追求简洁,可以用嵌套列表推导式一步完成转换:
Ii02 = [[[0, 1], [0, 2], [1, 3], [4, 3], [2, 4]], [[0, 1], [0, 2], [1, 3], [4, 3], [3, 4], [2, 5]]] Ii03 = [[[i] for i in sublist] for sublist in Ii02] print(Ii03)
输出结果
运行上述代码后,会得到你预期的结构:
[[[[0, 1]], [[0, 2]], [[1, 3]], [[4, 3]], [[2, 4]]], [[[0, 1]], [[0, 2]], [[1, 3]], [[4, 3]], [[3, 4]], [[2, 5]]]]
内容的提问来源于stack exchange,提问作者Klimt865
相关产品推荐
相关产品推荐

