如何用Python创建字典统计两个文件中用户的任务数量?
问题解决:统计用户任务数量
原代码核心问题
- 用
zip(num_users, task_lines)强制按行索引配对用户和任务,完全忽略两者的实际关联逻辑,导致大量数据遗漏。 - 每次匹配成功就直接覆盖
my_dict为用户与任务的键值对,这不是计数逻辑,只会保留最后一次匹配的结果。 - 未初始化用户任务计数,也未遍历所有任务完成累计统计。
修正后的代码
# 初始化用户任务计数字典 user_task_count = {} # 读取用户文件,提取所有用户名并设置初始计数为0 with open("user.txt", "r") as user_file: for line in user_file: # 拆分每行数据,取第一个元素作为用户名 username = line.strip().split(", ")[0] user_task_count[username] = 0 # 读取任务文件,统计每个用户的任务数量 with open("tasks.txt", "r") as tasks_file: for line in tasks_file: # 拆分任务行,取第一个元素为任务所属用户名 task_owner = line.strip().split(", ")[0] # 若该用户在用户列表中,计数加1 if task_owner in user_task_count: user_task_count[task_owner] += 1 # 输出统计结果 print("用户任务数量统计:") for user, count in user_task_count.items(): print(f"- {user}: {count} 个任务")
代码说明
- 文件操作优化:使用
with语句自动管理文件资源,避免手动关闭文件的遗漏问题。 - 初始化计数:先遍历
user.txt提取所有用户名,为每个用户设置初始任务数0。 - 统计逻辑:遍历
tasks.txt的每一行,提取任务所属用户名,对应字典中的计数累加。 - 结果输出:遍历字典,清晰展示每个用户的任务数量。
内容的提问来源于stack exchange,提问作者Livvy Wilson
相关产品推荐
相关产品推荐

