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

能否在Python的list.append()中嵌入for循环?代码优化需求

在list.append()中嵌入for循环的实现方案

当然可以实现,你需要的是用列表推导式来替代手动逐个添加元素的操作,直接在append()的参数里生成目标子列表。

原代码示例(模拟你的手动实现)

Imported_Variables = []
# 遍历从第3行开始的所有行
for row in ExcelSheet_IO.iter_rows(min_row=3):
    # 检查首列值不为空
    if row[0].value is not None:
        # 手动添加0到18列的value
        Imported_Variables.append([
            row[0].value,
            row[1].value,
            # ... 省略到row[18].value的重复代码
        ])

优化后的代码(用列表推导式嵌入循环)

Imported_Variables = []
for row in ExcelSheet_IO.iter_rows(min_row=3):
    if row[0].value is not None:
        # 用for循环遍历前19个单元格(索引0-18),生成value列表
        Imported_Variables.append([cell.value for cell in row[:19]])

进一步简化:合并外层循环与列表推导式

如果想更精简,可以把整个逻辑用一层嵌套列表推导式实现,完全省略append()的显式调用:

Imported_Variables = [
    [cell.value for cell in row[:19]]
    for row in ExcelSheet_IO.iter_rows(min_row=3)
    if row[0].value is not None
]

注意事项

  • 如果你的Excel库返回的行对象不支持切片(比如部分旧版库),可以改用索引遍历:
    Imported_Variables.append([row[i].value for i in range(19)])
    
  • 若需要处理单元格值为None的场景(比如替换为空字符串),可以修改推导式:
    [cell.value if cell.value is not None else "" for cell in row[:19]]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:43:22