Python列表生成递进子列表代码异常:无法获取索引0元素1的排查
代码问题分析与修复
原代码的核心问题
- 元素收集逻辑完全错误:内层
for j in range(0,i)仅打印j的值,没有实际收集前i个元素,最后只把循环结束后j对应的单个元素(也就是原列表的第i-1位元素)添加到list2,导致list2变成单个元素的累加,完全不是期望的完整前i个元素的子列表。 - 变量名违反编码规范:用Python内置类型
list作为变量名,会覆盖内置的list()函数,后续代码如果用到列表构造会出问题。 - 输出格式不符合预期:期望输出中每次的
list2是完整的前n个元素集合,原代码的append逻辑只会逐步添加单个元素,输出结构完全不对。
修复后的代码
original_list = [1, 3, 2, 10, 4, 8, 6] for i in range(2, len(original_list)): current_sub_list = original_list[:i] num = original_list[i] print(f"list2 = {current_sub_list} Num = {num}")
运行结果
list2 = [1, 3] Num = 2 list2 = [1, 3, 2] Num = 10 list2 = [1, 3, 2, 10] Num = 4 list2 = [1, 3, 2, 10, 4] Num = 8 list2 = [1, 3, 2, 10, 4, 8] Num = 6
内容的提问来源于stack exchange,提问作者sanjay tewari
相关产品推荐
相关产品推荐

