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

Python新手求助:统计TXT文件中重复姓名出现次数(基础实现)

解决方法

你的代码逻辑完全不对——你把word和user设成了同一个值,每次比较必然相等,然后单纯减1,根本没法统计姓名的重复次数。

给你一个完全用基础语法实现的简单写法,不用字典、列表推导式和任何模块,步骤直白易懂:

  1. 先把文件里所有姓名提取出来,存到一个普通列表里
  2. 用另一个列表记录已经统计过的姓名,避免重复输出同一个结果
  3. 逐个遍历每个姓名,没统计过的就用循环数它在列表里的出现次数,最后打印结果

代码如下:

# 第一步:提取所有姓名到列表
names = []
with open('tasks.txt', 'r') as file2:
    content = file2.readlines()
    for line in content:
        # 去掉每行末尾的换行符,再分割字段
        clean_line = line.strip()
        split_data = clean_line.split(', ')
        user = split_data[0]
        names.append(user)

# 第二步:统计每个姓名的出现次数,避免重复输出
counted_names = []
for name in names:
    if name not in counted_names:
        # 初始化当前姓名的计数
        count = 0
        # 遍历整个姓名列表,数出当前姓名的出现次数
        for n in names:
            if n == name:
                count += 1
        print(f"{name} 出现了 {count} 次")
        # 标记为已统计,防止重复输出
        counted_names.append(name)

针对你的测试文件,运行后会输出:

Jim 出现了 3 次
Marc 出现了 1 次
Tom 出现了 1 次

这个写法全是基础的循环和列表操作,每一步逻辑都很清晰,适合新手理解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:21:02