You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:17:18