You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环生成列表的追加合并:输出不符预期问题排查

问题:合并循环生成的嵌套列表

当前代码在i=1、2时分别生成对应列表A,期望将每次循环得到的A追加合并为一个整体嵌套列表。

当前代码

import pandas as pd
import numpy as np

A=[]

for i in range(1,3):
    file_loc = f"C:\\Users\\USER\\OneDrive - Technion\\Research_Technion\\Python_PNM\\Sept12_2022\\{i}\\Test.xlsx"
    df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], usecols="A,C:AA")
    A=df["N"].to_numpy()
    
    A = [x for x in A if str(x) != 'nan']
    
    A = [eval(e) for e in A]
    print([A])

实际输出

[[1], [2], [3], [4], [5]]
[[8], [4], [6], [2], [3]]

预期输出

[[[1], [2], [3], [4], [5]],[[8], [4], [6], [2], [3]]]

解决方案

问题出在循环中每次直接给A赋值,覆盖了初始的空列表容器。要实现嵌套合并,需保留初始的A作为外层容器,将每轮循环生成的子列表追加进去。

修改后的代码:

import pandas as pd
import numpy as np

# 初始化外层嵌套列表容器
A = []

for i in range(1,3):
    file_loc = f"C:\\Users\\USER\\OneDrive - Technion\\Research_Technion\\Python_PNM\\Sept12_2022\\{i}\\Test.xlsx"
    df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], usecols="A,C:AA")
    # 用临时变量存储当前循环的处理结果,避免覆盖外层容器
    current_A = df["N"].to_numpy()
    
    current_A = [x for x in current_A if str(x) != 'nan']
    
    current_A = [eval(e) for e in current_A]
    # 将当前循环的子列表追加到外层容器
    A.append(current_A)

# 打印最终的嵌套列表
print(A)

关键改动说明

  • 保留初始的A = []作为外层嵌套列表的容器
  • 循环内使用临时变量current_A处理每一轮的数据,避免直接覆盖外层容器
  • 每轮处理完成后,用A.append(current_A)将当前子列表加入外层容器
  • 循环结束后打印整个A,即可得到预期的嵌套结构

内容的提问来源于stack exchange,提问作者user19862793

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:15:36