如何移除列表中前5位前缀重复的元素,仅保留唯一前缀对应项
Python列表按前5位前缀去重,保留首次出现元素
原始列表
list_ph = ['8002378990','8001378990','8202378990','8002378920','8002375990','8002378990','8001378890','8202398990']
需求
无需指定具体前缀值,仅通过判断元素的value[:5](前5位字符),移除列表中所有前缀重复的元素,每个前缀仅保留第一个出现的元素,最终得到结果:
['8002378990','8001378990','8202378990']
解决方案代码
list_ph = ['8002378990','8001378990','8202378990','8002378920','8002375990','8002378990','8001378890','8202398990'] # 用集合记录已出现的前缀,保证唯一性 seen_prefixes = set() result_list = [] for phone_num in list_ph: # 提取前5位作为前缀 prefix = phone_num[:5] if prefix not in seen_prefixes: seen_prefixes.add(prefix) result_list.append(phone_num) print(result_list)
代码说明
- 用集合
seen_prefixes跟踪已处理的前缀,集合元素唯一的特性可以快速判断前缀是否重复 - 遍历原始列表时,对每个号码提取前5位前缀,只要前缀未在集合中出现过,就将前缀加入集合,并把当前号码存入结果列表
- 这种方式能确保每个前缀只保留第一次出现的号码,完全匹配需求
内容的提问来源于stack exchange,提问作者mosa lorans
相关产品推荐
相关产品推荐

