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

能否在Python函数中使用多循环?Openpyxl统计代码优化求助

优化Openpyxl多单词统计的代码方案

你当前的代码能实现单一单词的统计,但重复复制代码效率太低,完全可以通过封装函数和批量配置来解决问题,以下是具体方案:

原代码回顾

word = 0
for i in ws["B"]:
    if i.value == "word":
        word += 1
ws["M2"] = word

封装通用统计函数

把统计逻辑封装成函数,传入工作表对象、要搜索的列、目标单词、结果写入单元格这几个参数,就能重复调用:

def count_word(ws, search_col, target_word, result_cell):
    count = 0
    for cell in ws[search_col]:
        if cell.value == target_word:
            count += 1
    ws[result_cell] = count

调用示例

比如要统计B列中"apple"写入M2,"banana"写入N2,直接调用函数即可:

count_word(ws, "B", "apple", "M2")
count_word(ws, "B", "banana", "N2")

用字典实现批量统计

如果你有大量单词和对应结果单元格需要处理,可以用字典配置映射关系,循环调用函数,避免重复写调用语句:

# 定义字典:键是要搜索的单词,值是结果单元格
word_cell_map = {
    "apple": "M2",
    "banana": "N2",
    "orange": "O2"
}

# 循环字典批量处理
for word, cell in word_cell_map.items():
    count_word(ws, "B", word, cell)

关于函数中使用多个for循环

完全可以在def定义的函数里放入多个for循环,只要逻辑符合你的需求。比如如果需要同时统计多列的同一个单词,就可以在函数里嵌套或并列多个循环。不过更推荐把单一职责的逻辑封装成小函数,再组合使用,这样代码更易读、易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:43:04