如何使用嵌套for循环向列表中添加子列表?
问题解决:用嵌套循环生成带独立子列表的列表
你的代码存在两个核心问题,导致无法实现需求:
return(Values)被放在外层循环的第一轮迭代内,函数会直接返回,只处理第一个k就终止- 未为每个
k创建独立子列表,而是将所有Polynomial(i)直接塞入同一个大列表
修改后的代码示例
假设你的M是包含多个子列表的输入(比如M=[[1,2],[3,4]]),内层循环遍历每个k的元素:
M = [[1, 2, 3], [4, 5, 6]] # 示例输入:包含多个子列表的列表 def function(x): values = [] # 函数内部初始化结果列表,避免全局变量的副作用 for k in x: # 遍历每个子列表 sub_list = [] # 为当前k创建独立的子列表容器 for i in k: # 遍历当前子列表中的每个元素 sub_list.append(Polynomial(i)) values.append(sub_list) # 将填充好的子列表加入结果列表 return values # 所有循环完成后再返回最终结果 result = function(M) print(result)
如果你的m是固定独立列表(与k无关),只需调整内层循环的遍历对象即可:
m = [7, 8, 9] # 固定的内层循环元素列表 M = [10, 20, 30] # 外层循环的输入列表 def function(x): values = [] for k in x: sub_list = [] for i in m: sub_list.append(Polynomial(i)) values.append(sub_list) return values
关键逻辑说明
- 在外层循环内部每次新建子列表,确保每个
k对应独立的子列表 - 将
return移至外层循环外部,保证所有k都被处理 - 避免使用全局变量存储结果,函数内部初始化列表更安全,防止多次调用时结果累积
内容的提问来源于stack exchange,提问作者Bronze
相关产品推荐
相关产品推荐

