Python中如何生成符合预期的列表的列表?代码输出异常求解
保持嵌套列表结构一致的代码修正
你有一个嵌套列表:
input_file = [[a,b,c],[1,2,3],[1,2,3]]
原本编写的代码试图生成和原结构一致的嵌套列表,但运行后得到的结果是[a,b,c,[1,2,3],[1,2,3]],破坏了原有的嵌套结构;尝试给第一个append加方括号后,结果变成[[a],[b],[c],[1,2,3],[1,2,3]],还是不符合预期。
问题根源
第一个循环里你遍历了input_file[0]的每个元素并逐个添加,相当于把原有的第一个子列表拆成了单个元素;后来的改法又把每个元素单独包装成子列表,都偏离了“保留原嵌套结构”的目标。
修正后的代码
validated_list = [] # 直接将第一个子列表完整加入,而非遍历其内部元素 validated_list.append(input_file[0]) for value in input_file[1:]: # 先转为字符串,避免非字符串类型调用isnumeric报错 answer = str(value[2]) if not answer.isnumeric(): break num = int(answer) if 1 <= num <= 10: validated_list.append(value) return validated_list
关键说明
- 直接添加
input_file[0]这个子列表,而不是遍历它的元素,这样就能保留原有的嵌套层级,让结果的第一个元素和原列表一致。 - 增加
str(value[2])的转换,防止value[2]是数字类型时调用isnumeric()报错,提升代码健壮性。
内容的提问来源于stack exchange,提问作者Anna S
相关产品推荐
相关产品推荐

