Python如何从含额外空格的行中提取val1前的group与team字段
字段提取解决方案
实现思路
- 每行的核心分割依据是第一个整数类型的val1字段,而非固定取前2个分片
- 遍历每行拆分后的片段,找到第一个可转换为整数的片段位置,该位置之前的所有片段拼接即为目标内容
- 自动去重,得到最终不重复的group+team组合
完整实现代码
# 若需保留首次出现顺序可改为列表:result = [] result = set() def is_integer(s): try: int(s) return True except ValueError: return False with open('source.txt', 'r', encoding='utf-8') as f: for line in f: line = line.strip() if not line: continue parts = line.split() # 定位第一个val1整数的位置 val1_idx = None for idx, part in enumerate(parts): if is_integer(part): val1_idx = idx break if val1_idx is not None: target = ' '.join(parts[:val1_idx]) result.add(target) # 用列表保留顺序的话替换上一行为: # if target not in result: # result.append(target) # 输出结果 for item in result: print(item)
效果说明
运行代码后会输出和预期完全一致的结果,无需考虑group、team内部包含的空格,也兼容val1为任意位数整数、val2后带括号标注的所有场景。
内容的提问来源于stack exchange,提问作者rbutrnz
相关产品推荐
相关产品推荐

