如何用Python统计任务文件中用户的任务数量?(全局列表及Counter问题)
统计任务文件中用户的任务次数
我需要读取一个任务列表文件,每行第一个元素是用户名,已实现文件打开、数据提取,但无法统计每个用户的任务次数(出现次数即对应任务数)。现有代码如下:
user_global = [] def disp_stats(): with open ("tasks.txt", "r", encoding='cp1252') as tu: for lines in tu: data_list = lines.strip("\n").split(", ") data_list = data_list[0] # 这是需要统计次数的用户名 user_global.append(data_list) print(user_global)
尝试用Counter工具统计但未成功,以下是修正后的解决方案:
修正代码
from collections import Counter def disp_stats(): # 初始化Counter对象用于计数 user_task_counts = Counter() with open("tasks.txt", "r", encoding='cp1252') as tu: for line in tu: # 去除换行符并按", "分割行数据,取第一个元素作为用户名 username = line.strip().split(", ")[0] # 对该用户计数+1 user_task_counts[username] += 1 # 遍历输出每个用户的任务次数 for user, task_num in user_task_counts.items(): print(f"{user}: {task_num} 项任务")
关键说明
- 不需要全局列表
user_global,直接在函数内用Counter维护计数,逻辑更简洁 strip()默认会去除换行符和首尾空白,比手动指定strip("\n")更通用- 遍历
Counter的items()方法即可获取每个用户及其对应的任务次数
内容的提问来源于stack exchange,提问作者maccadies
相关产品推荐
相关产品推荐

