如何使用Python遍历处理带冒号分隔的员工汇报关系字符串
问题需求
给定字符串 s="1:a:2,2:b:4,3:c:4,4:d:1",其中每个逗号分隔的子串格式为「员工ID:姓名:经理ID」,需要生成如下汇报关系语句:
a is report to b b is report to d c is report to d d is report to a
现有部分Python代码需要完善:
l = [] for each in s.split(','): for each_ite in each: l.append(each_ite) for each in l: #find the first element #traverse to 3rd element
完善后的代码实现
s = "1:a:2,2:b:4,3:c:4,4:d:1" # 构建员工ID与姓名的映射字典,方便快速查询经理姓名 employee_dict = {} for emp_info in s.split(','): emp_id, emp_name, manager_id = emp_info.split(':') employee_dict[emp_id] = emp_name # 遍历所有员工信息,生成并打印汇报语句 for emp_info in s.split(','): emp_id, emp_name, manager_id = emp_info.split(':') manager_name = employee_dict[manager_id] print(f"{emp_name} is report to {manager_name}")
代码说明
- 原代码的问题在于将每个字符拆分存入列表,后续难以直接关联员工ID与姓名,改用字典映射的方式可以高效通过ID获取对应姓名。
- 第一步先遍历所有员工信息,建立「员工ID → 姓名」的映射关系;
- 第二步再次遍历员工信息,通过经理ID从字典中取出经理姓名,按要求格式输出汇报语句。
内容的提问来源于stack exchange,提问作者Mak Hus
相关产品推荐
相关产品推荐

