如何调整嵌套for循环代码,使结果以嵌套列表形式存储?
解决方案
方法一:修改原有循环逻辑
在原有代码的外层循环中新增临时子列表,存储当前行的所有元素,内层循环完成后再将该子列表加入最终结果:
n_row = 5 n_col = 2 result = [] for r in range(n_row): row_list = [] # 初始化当前行的子列表 for c in range(n_col): a = r*2 b = c+1 d = a-b row_list.append(d) # 将当前列的结果存入子列表 result.append(row_list) # 把整行的子列表加入最终结果
运行后result即为目标嵌套列表:[[-1, -2], [1, 0], [3, 2], [5, 4], [7, 6]]
方法二:使用列表推导式(更简洁)
利用Python列表推导式可一行实现逻辑,代码更紧凑高效:
n_row = 5 n_col = 2 result = [[r*2 - (c+1) for c in range(n_col)] for r in range(n_row)]
外层推导式遍历每行的r值,内层推导式遍历该行的每列c值,直接生成每行对应的子列表,最终组合成嵌套列表。
内容的提问来源于stack exchange,提问作者Asal Khoshravan Azar
相关产品推荐
相关产品推荐

