如何用Python去除字典值中Q至连字符(含)的多余字符?
清理Python字典值中的前缀内容
方法1:字符串分割法
直接通过split('-')分割字符串,提取后半部分并清理空白字符:
original_dict = {'ID': 'ID', 'HE': 'Q1 - lth', 'LT': 'Q2 - La tor', 'HIP': 'Q3a - hh sure', 'MHBP': 'Q3.1.a - pressure ', 'DITE': 'Q3b - Dates'} cleaned_dict = {} for k, v in original_dict.items(): if '-' in v: # 仅处理包含连字符的项 # 分割一次后取第二部分,去除前后空白 cleaned_v = v.split('-', 1)[1].strip() cleaned_dict[k] = cleaned_v else: cleaned_dict[k] = v print(cleaned_dict)
输出结果:
{'ID': 'ID', 'HE': 'lth', 'LT': 'La tor', 'HIP': 'hh sure', 'MHBP': 'pressure', 'DITE': 'Dates'}
方法2:正则表达式法
如果需要精准匹配Q开头到第一个-的前缀,用正则替换更可靠:
import re original_dict = {'ID': 'ID', 'HE': 'Q1 - lth', 'LT': 'Q2 - La tor', 'HIP': 'Q3a - hh sure', 'MHBP': 'Q3.1.a - pressure ', 'DITE': 'Q3b - Dates'} # 匹配以Q开头、直到第一个-(含)及后续空白的内容 regex_pattern = re.compile(r'^Q.*?-\s*') cleaned_dict = {k: regex_pattern.sub('', v) for k, v in original_dict.items()} print(cleaned_dict)
正则规则说明:
^Q:锚定字符串开头的Q字符.*?:非贪婪匹配任意字符,避免误匹配多个--\s*:匹配连字符及其后的所有空白字符sub('', v):将匹配到的前缀替换为空字符串
分割法简洁高效,适合规则固定的场景;正则法适配更复杂的前缀格式,容错性更强。
内容的提问来源于stack exchange,提问作者user14269252
相关产品推荐
相关产品推荐

