Python如何为无空格的英国邮政编码自动插入分隔空格?
英国邮政编码空格补全方案
核心逻辑
英国邮政编码的后半段固定为3位字符,因此可以跳过「判断是否已有空格」的分支逻辑,统一按以下步骤处理:
- 先移除原始编码中的所有空格
- 从倒数第3位的位置拆分字符串,中间插入空格即可
代码实现
字符串切片方案(最高效,无额外依赖)
post_codes = ["BH16 6FA", "HU37FD", "W4 5YE", "E50QD", "WC2H9JQ", "LE3 0PD"] def format_postcode(code: str) -> str: cleaned_code = code.replace(" ", "") return f"{cleaned_code[:-3]} {cleaned_code[-3:]}" processed_post_codes = [format_postcode(code) for code in post_codes] print(processed_post_codes)
运行输出结果:
['BH16 6FA', 'HU3 7FD', 'W4 5YE', 'E5 0QD', 'WC2H 9JQ', 'LE3 0PD']
正则表达式方案
如果偏好正则实现,也可以用以下写法,无需提前清理空格:
import re def format_postcode(code: str) -> str: # 匹配末尾3位字符,自动在前面补空格,兼容已有空格的场景 return re.sub(r' ?(\w{3})$', r' \1', code)
内容的提问来源于stack exchange,提问作者Dappa jack
相关产品推荐
相关产品推荐

