如何将包含元组的SARIMAX字符串拆分为元组字符串列表?
SARIMAX模型参数字符串拆分方案
你需要把形如SARIMAX(0, 1, 1)x(0, 1, 1, 12)的字符串拆分为包含两个元组字符串的列表,这里给你两种简单有效的实现方法:
方法一:字符串分割法
直接利用x作为分隔符拆分字符串,再清理前缀即可:
sarimax_res = 'SARIMAX(0, 1, 1)x(0, 1, 1, 12)' # 按x拆分字符串 split_parts = sarimax_res.split('x') # 移除第一部分的SARIMAX前缀 split_parts[0] = split_parts[0].replace('SARIMAX', '') # 得到目标列表 result = split_parts print(result) # 输出: ['(0, 1, 1)', '(0, 1, 1, 12)']
方法二:正则表达式提取法
如果需要更通用的处理(比如前缀可能变化),用正则提取所有括号包裹的内容:
import re sarimax_res = 'SARIMAX(0, 1, 1)x(0, 1, 1, 12)' # 匹配所有(...)格式的子串 result = re.findall(r'\([^)]+\)', sarimax_res) print(result) # 输出: ['(0, 1, 1)', '(0, 1, 1, 12)']
这个正则表达式r'\([^)]+\)'的作用是精准匹配所有以(开头、)结尾的完整子串,不管字符串前缀是什么都能提取出参数部分。
内容的提问来源于stack exchange,提问作者MADFROST
相关产品推荐
相关产品推荐

