如何拆分多空格分隔的字符串,保留'GJ 581 g'为单个元素
解决字符串拆分问题
方法1:使用正则表达式拆分
利用正则匹配至少两个连续空格作为分隔符,同时先去除字符串首尾的空白字符,就能保留开头的GJ 581 g作为单个元素:
import re original_str = " GJ 581 g 3.1 1.36 1.22 1.67 1.51 0.15 278 248" # 先去除首尾空格,再按至少两个连续空格拆分 result = re.split(r'\s{2,}', original_str.strip()) print(result) # 输出:['GJ 581 g', '3.1', '1.36', '1.22', '1.67', '1.51', '0.15', '278', '248']
方法2:手动定位分隔位置
先找到第一个连续多空格的位置,将字符串拆分为开头部分和剩余数值部分,再分别处理:
original_str = " GJ 581 g 3.1 1.36 1.22 1.67 1.51 0.15 278 248" # 定位第一个连续两个空格的位置 split_pos = original_str.find(' ') # 提取开头部分并去除多余空格 first_item = original_str[:split_pos].strip() # 剩余部分按任意空格拆分 rest_items = original_str[split_pos:].split() # 合并结果 result = [first_item] + rest_items print(result) # 输出:['GJ 581 g', '3.1', '1.36', '1.22', '1.67', '1.51', '0.15', '278', '248']
方法3:针对固定格式的合并(仅适用于第一个元素固定为3个单词的场景)
如果确定开头的目标元素永远是前3个单词,可以先拆分所有元素,再合并前3个:
original_str = " GJ 581 g 3.1 1.36 1.22 1.67 1.51 0.15 278 248" all_parts = original_str.split() # 合并前3个元素,保留后面的所有元素 result = [' '.join(all_parts[:3])] + all_parts[3:] print(result) # 输出:['GJ 581 g', '3.1', '1.36', '1.22', '1.67', '1.51', '0.15', '278', '248']
内容的提问来源于stack exchange,提问作者David Nilsson
相关产品推荐
相关产品推荐

