Python字符串列表标准化:寻求替代手动映射字典的更优方案
更优的区域字符串标准化实现方案
不用手动维护映射字典,你可以通过正则表达式提取核心区域编码的方式实现自动化标准化,这种方法扩展性更强,不用为每个变体单独添加映射项。
实现思路
观察需求能发现,所有区域字符串的核心是末尾的大写字母组合(比如A、AB、C等),标准化后的格式统一为REG-核心编码。我们可以用正则匹配出每个字符串里的核心编码,再拼接统一前缀即可。
代码实现
import re def standardize_region(region_str): # 匹配两种模式:1. 连字符结尾的大写编码;2. 纯大写编码的字符串 match_result = re.search(r'-([A-Z]+)$|^([A-Z]+)$', region_str) if match_result: # 取匹配到的编码组(优先连字符后的部分) core_code = match_result.group(1) or match_result.group(2) return f'REG-{core_code}' # 处理不符合规则的特殊情况,返回原字符串 return region_str # 测试输入列表 unique_region = ['REGION-A', 'REGION-B','REGION-C','REGION-AB', 'REG-A','REG-B','REG-C', 'REG-AB','R-A','AB'] harmonized_region = [standardize_region(r) for r in unique_region] print(harmonized_region)
优势对比
- 无需手动维护映射字典,新增符合规律的区域变体时无需修改代码
- 代码简洁逻辑清晰,适合处理大量同类字符串的标准化需求
- 可通过扩展正则规则兼容更多特殊格式的区域字符串
内容的提问来源于stack exchange,提问作者pyex
相关产品推荐
相关产品推荐

