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

Python实现:累加满足条件的列表项 统计销售额超5万门店员工总数

符合需求的完整实现代码

你的原有代码存在几个基础逻辑错误,修正后的版本通用适配所有同格式门店记录,新手可以直接对照修改:

def count_employees(records):
    # 总员工计数器初始值设为整数0,不能用空字符串,否则无法做数值累加
    total_emp = 0
    for line in records:
        # 按逗号拆分每行内容为4个字段:[门店ID, 员工数量, 所在郊区, 销售额]
        # 如果传入的records已经是提前拆分好的嵌套列表,这行可以直接删掉
        store_info = line.strip().split(',')
        # 销售额是字符串格式,转成浮点数才能和50000做数值比较
        sales = float(store_info[3])
        if sales > 50000:
            # 员工数量也是字符串,转成整数后累加到总计数器
            emp_count = int(store_info[1])
            total_emp += emp_count
    # 最终返回存总人数的计数器,不要返回循环临时变量
    return total_emp

关键逻辑说明(新手必看)

  • 计数器初始化:所有数值累加的场景,计数器初始值必须是对应数值类型的0,你原来写的空字符串""是文本类型,执行加法会直接报类型错误。
  • 字符串拆分:如果records是直接用readlines()从txt文件读出来的结果,每个元素是一整行带逗号的文本(比如"Hm001,6,Frankton,42305.67"),必须先用split(',')切割成独立字段,否则直接取[3]拿到的是字符串的第4个字符,根本不是销售额数据。
  • 类型转换:从txt读取的所有内容默认都是字符串,必须把员工数转成整数int、销售额转成浮点数float,才能做大小比较、加法计算,否则字符串和数字直接运算会报错。
  • 累加写法:total_emp += emp_count是简写形式,和total_emp = total_emp + emp_count效果完全一样,都是把当前门店的员工数加到总计数上。
  • 返回值注意:循环结束后要返回存总人数的total_emp变量,你原来写的return count返回的是循环里最后一次遍历的临时行数据,根本不是计算好的总人数。

测试验证

用你提供的示例数据测试,运行结果如下:

test_records = [
    "Hm001,6,Frankton,42305.67",
    "Hm002,10,Glenview,21922.22",
    "Hm003,7,Silverdale,63277.9",
    "Hm004,13,Glenview,83290.09",
    "Hm005,21,Queenwood,81301.82",
    "Hm006,14,Hillcrest,62333.3",
    "Hm007,7,Frankton,28998.8",
    "Hm008,19,Chartwell,51083.5",
    "Hm009,6,Glenview,62155.72",
    "Hm0010,8,Enderley,33075.1",
    "Hm0011,10,Fairfield,61824.7",
    "Hm0012,15,Rototuna,21804.8",
    "Hm0013,11,Fairfield,62804.7"
]
print(count_employees(test_records))
# 输出:101

这个结果是所有销售额超50000的门店员工数总和,和手动统计结果一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:06:16