Python如何对三维嵌套列表进行reshape得到指定二维列表
解决Python嵌套列表结构转换的可行方案
下面提供几种不同复杂度的实现方式,都能完成你要的转换效果:
方法1:基础遍历法(可读性最高,适合新手)
直接遍历原列表的每一项,分别把对应数值追加到两个结果列表中:
initial_list =[[[1],[11]],[[2],[12]],[[3],[13]],[[4],[14]],[[5],[15]]] res1 = [] res2 = [] for entry in initial_list: res1.append(entry[0][0]) res2.append(entry[1][0]) new_list = [res1, res2]
方法2:zip函数+列表推导式(简洁高效)
利用zip的转置特性,先把原列表每一项的[[a],[b]]展平为[a,b],再批量聚合同位置元素:
initial_list =[[[1],[11]],[[2],[12]],[[3],[13]],[[4],[14]],[[5],[15]]] new_list = [list(col) for col in zip(*[e[0] + e[1] for e in initial_list])]
方法3:双层列表推导式
纯推导式写法,代码更短:
initial_list =[[[1],[11]],[[2],[12]],[[3],[13]],[[4],[14]],[[5],[15]]] new_list = [[entry[i][0] for entry in initial_list] for i in (0, 1)]
以上三种方法运行后得到的new_list都符合你要求的[[1, 2, 3, 4, 5], [11, 12, 13, 14, 15]]结构。
内容的提问来源于stack exchange,提问作者steven
相关产品推荐
相关产品推荐

