如何将Python嵌套for循环转为列表推导式?附多维列表展平案例
展平多维列表的列表推导式实现
你已经用嵌套for循环实现了三维列表的展平,要转换为列表推导式,核心是保持for循环的嵌套顺序和原代码一致,结构为:[要收集的元素 for 外层循环变量 in 外层可迭代对象 for 中层循环变量 in 中层可迭代对象 for 内层循环变量 in 内层可迭代对象]
对应原循环的推导式
原嵌套循环的执行顺序是:遍历f_list → 遍历每个sublist → 遍历每个subsublist → 收集元素i。直接对应到列表推导式就是:
f_list = [[[1, 2, 3]], [[4, 5, 6]], [[7, 8, 9]]] new_l = [i for sublist in f_list for subsublist in sublist for i in subsublist] print(new_l) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]
逻辑对应说明
- 原代码中最外层的
for sublist in f_list,放在推导式的第一个for位置 - 中层的
for subsublist in sublist,放在第二个for位置 - 最内层的
for i in subsublist,放在第三个for位置 - 最前面的
i就是原循环中append(i)的元素,也就是最终要收集的内容
这种写法完全复刻了嵌套循环的执行逻辑,只是把多行循环压缩成了一行推导式。
内容的提问来源于stack exchange,提问作者devuser
相关产品推荐
相关产品推荐

