Python如何将动态格式字符串拆分解析为键值对字典
实现方案
核心思路
你已经选对了正则拆分的方向,只需要对拆分结果做键值配对即可,我们可以直接优化正则匹配规则,一次性拿到「字母键-数字值」的元组对,减少后续处理步骤:
- 正则规则调整为
r'([A-Za-z]+)(\d+)',直接匹配连续字母+连续数字的组合,re.findall执行后会返回所有匹配到的(键, 数值字符串)元组 - 遍历元组列表,把数值字符串转成整型,逐个填入字典即可
完整可运行代码
import re def size_str_to_dict(size_str): # 直接匹配所有(字母键, 数值)元组 match_pairs = re.findall(r'([A-Za-z]+)(\d+)', size_str) # 转为字典,值转整型 return {key: int(value) for key, value in match_pairs} # 测试用例 test_cases = ["S31", "S4", "S2M1L10XL8", "S1M2L0XL0", "S0M5L6XL8"] for case in test_cases: print(f"{case} 转换结果:{size_str_to_dict(case)}")
运行输出
S31 转换结果:{'S': 31} S4 转换结果:{'S': 4} S2M1L10XL8 转换结果:{'S': 2, 'M': 1, 'L': 10, 'XL': 8} S1M2L0XL0 转换结果:{'S': 1, 'M': 2, 'L': 0, 'XL': 0} S0M5L6XL8 转换结果:{'S': 0, 'M': 5, 'L': 6, 'XL': 8}
内容的提问来源于stack exchange,提问作者Daniel Henríquez Sandoval
相关产品推荐
相关产品推荐

