Python新手求助:统计TXT文件中重复姓名出现次数(基础实现)
解决方法
你的代码逻辑完全不对——你把word和user设成了同一个值,每次比较必然相等,然后单纯减1,根本没法统计姓名的重复次数。
给你一个完全用基础语法实现的简单写法,不用字典、列表推导式和任何模块,步骤直白易懂:
- 先把文件里所有姓名提取出来,存到一个普通列表里
- 用另一个列表记录已经统计过的姓名,避免重复输出同一个结果
- 逐个遍历每个姓名,没统计过的就用循环数它在列表里的出现次数,最后打印结果
代码如下:
# 第一步:提取所有姓名到列表 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
相关产品推荐
相关产品推荐

