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

如何在循环中为字符串变量追加内容?Excel数据读取场景实现咨询

问题1:如何在循环中为字符串变量追加内容?

Python里的字符串是不可变类型——说白了就是你没法直接修改原字符串,每次追加操作其实是生成一个新的字符串对象。不过日常使用时,有两种靠谱的方式能实现循环追加:

  • 用+=直接追加:这种方式简单直白,适合循环次数不多的场景,写起来省心。举个例子:

    final_str = ""
    for word in ["Hi", " ", "there", "!"]:
        final_str += word
    print(final_str)  # 输出: Hi there!
    
  • 用列表暂存+join拼接:如果循环次数特别多,这种方式效率更高——因为列表的append操作比反复创建新字符串要快得多。示例代码:

    str_parts = []
    for word in ["Hi", " ", "there", "!"]:
        str_parts.append(word)
    final_str = "".join(str_parts)
    print(final_str)  # 输出: Hi there!
    
问题2:循环读取Excel数据并生成对应命名的变量

先给你提个关键建议:别直接动态创建North1、Center1这种变量名!这种做法会让你的代码变得混乱,后续要调用这些变量时得费劲查找,还容易和现有变量重名出问题。更聪明的做法是用字典来存储——把"North1"、"Center1"作为字典的键,对应的列表作为值,管理起来超方便。

结合你给出的代码片段,我帮你调整成更合理的写法:

import os
import openpyxl

position = ["North", "Center", "South"]
path = "你的实际文件路径"  # 记得替换成你自己的路径
sheets_heights = [1, 2, 3]  # 假设这是你要循环的序号,比如1、2、3

# 用字典存储所有结果,键是类似"North1"的字符串,值是对应的数据列表
position_data = {}

for p in position:
    for i in sheets_heights:
        # 生成对应的键名,比如North1、Center2
        current_key = f"{p}{i}"
        # 初始化空列表
        position_data[current_key] = []
        
        # 注意:如果多个循环用同一个Excel文件,把load_workbook提到循环外,避免重复加载浪费资源
        # 替换成你对应p和i的文件名,比如f"{p}_data.xlsx"
        filename = f"匹配{p}和{i}的文件名.xlsx"
        workbook = openpyxl.load_workbook(os.path.join(path, filename), data_only=True)
        # 新版本openpyxl推荐用wb["Sheet1"]代替过时的get_sheet_by_name
        sheet = workbook["Sheet1"]
        
        # 读取B列数据(假设从第2行开始,跳过表头),追加到列表
        for row in sheet.iter_rows(min_row=2, min_col=2, max_col=2, values_only=True):
            cell_value = row[0]
            if cell_value is not None:  # 跳过空单元格
                position_data[current_key].append(cell_value)

# 之后要取North1的数据,直接用position_data["North1"]就行
print(position_data["North1"])

如果你铁了心要动态创建变量(真的不推荐),可以用globals()字典来操作,比如把上面的position_data[current_key] = []换成:

globals()[current_key] = []

这样之后你就能直接用North1、Center1这些变量名访问列表了,但还是那句话,字典的方式更稳妥、更易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:41:47