如何实现重复账户名区分:为重复账户名添加整数后缀
实现重复患者账户名自动添加后缀的解决方案
要实现重复账户名自动添加整数后缀的功能,核心是跟踪每个账户名的出现次数,每次生成账户名时根据次数调整最终名称。可以用一个字典来记录计数,修改后的代码如下:
patient_name = [] # 用字典记录每个账户名的出现次数 name_count = {} with open('all_patients.txt', 'r') as fh: for line in fh: splited_list = line.split() # 处理可能的空行或格式错误行 if len(splited_list) < 2: continue surname = splited_list[1] given_name = splited_list[0][0] base_name = (given_name + surname).lower() if base_name not in name_count: # 第一次出现,直接使用原名称 final_name = base_name name_count[base_name] = 1 else: # 重复出现,添加当前计数作为后缀 final_name = f"{base_name}{name_count[base_name]}" name_count[base_name] += 1 patient_name.append(final_name)
关键逻辑说明
name_count字典:键是账户名的基础名称,值是该名称已经出现的次数。- 第一次生成某个基础名称时,直接将其加入列表,同时在字典中标记计数为1。
- 后续再遇到相同的基础名称时,用当前计数作为后缀(比如第二次是
base_name1),然后将计数加1,确保下一次重复时后缀递增。 - 增加了空行/格式错误行的判断,避免因文件内容异常导致索引错误。
内容的提问来源于stack exchange,提问作者Simon Cheung
相关产品推荐
相关产品推荐

