Python创建嵌套列表时出现元素覆盖未正常追加问题求助
代码问题排查与修复
存在的错误
- 列表引用重复:你在循环外定义了
lst1,所有往main_lst里添加的都是同一个列表对象的引用,后续修改lst1(包括clear、append操作)会同步影响所有已经加入main_lst的子列表,这是所有子列表都和最后一次结果一致的核心原因。 - 缩进错误:内层循环结束后打印
lst1、给main_lst赋值的代码缩进错误,当前是写在外层for i循环的外面,只会在i遍历完所有值之后执行一次。 - 空列表索引赋值错误:初始化的
main_lst是空列表,不能直接通过main_lst[i] = xxx的方式赋值,会触发索引越界异常,应该用append()方法追加元素。
修复后代码
input_str = '5,6' lst = input_str.split(",") main_lst = [] total_list = int(lst[0]) total_elements = int(lst[1]) for i in range(total_list): # 每次外层循环都新建独立的子列表,避免引用冲突 sub_lst = [] for j in range(total_elements): sub_lst.append(j * i) main_lst.append(sub_lst) print(main_lst)
执行输出
[[0, 0, 0, 0, 0, 0], [0, 1, 2, 3, 4, 5], [0, 2, 4, 6, 8, 10], [0, 3, 6, 9, 12, 15], [0, 4, 8, 12, 16, 20]]
内容的提问来源于stack exchange,提问作者Prabhu Shankar Sankaranarayana
相关产品推荐
相关产品推荐

