Python列表推导式拆解疑问:展开循环后结果与原推导式不符
问题分析与解决
你的问题核心是循环逻辑和原列表推导式的嵌套结构不匹配:原列表推导式是双层嵌套的二维结构,外层为每一行生成独立的子列表,内层把该行字符转成整数填充到子列表中;而你的循环直接将所有整数元素追加到同一个主列表,最终只能得到一维结果。
正确的循环拆解代码
raw_data = """ 30373 25512 65332 33549 35390 """ t = [] for row in raw_data.split(): # 为当前行创建一个空的子列表 row_list = [] for x in row: row_list.append(int(x)) # 将填充好的子列表加入主列表 t.append(row_list) print(t) # 输出:[[3, 0, 3, 7, 3], [2, 5, 5, 1, 2], [6, 5, 3, 3, 2], [3, 3, 5, 4, 9], [3, 5, 3, 9, 0]]
逻辑对应说明
- 原列表推导式中,
[int(x) for x in row]对应循环里构建单一行的子列表的过程 - 外层的
for row in raw_data.split()对应循环里遍历每一行,将构建好的子列表加入主列表的操作
内容的提问来源于stack exchange,提问作者ccaj
相关产品推荐
相关产品推荐

