如何分割带括号的字符串?Python字符串分割问题求助
问题分析与解决
你用split('(,)')得不到预期结果,核心原因是原字符串里不存在(,)这个连续字符组合,实际分隔各个括号组的是),((右括号+逗号+左括号),所以split的参数用错了。
方法1:得到你期望的3元素列表
直接用),(作为分隔符拆分即可:
a='(180-240,0-100),(100-200,0-110),(200-240,0-120)' b = a.split('),(') print(b) # 输出结果:['(180-240,0-100', '100-200,0-110', '200-240,0-120)']
方法2:拆成6个单独的区间字符串
如果最终目标是得到['180-240','0-100','100-200','0-110','200-240','0-120'],可以用更简洁的方式处理:
a='(180-240,0-100),(100-200,0-110),(200-240,0-120)' # 先去掉首尾括号,再把中间的),(替换成逗号,最后按逗号拆分 result = a.strip('()').replace('),(', ',').split(',') print(result) # 输出结果:['180-240', '0-100', '100-200', '0-110', '200-240', '0-120']
或者分步处理,逻辑更清晰:
a='(180-240,0-100),(100-200,0-110),(200-240,0-120)' # 拆分出三个括号组 groups = a.split('),(') # 清理第一个组的左括号和最后一个组的右括号 groups[0] = groups[0].lstrip('(') groups[-1] = groups[-1].rstrip(')') # 拆分每个组并合并成最终列表 final_list = [] for group in groups: final_list.extend(group.split(',')) print(final_list) # 同样得到目标结果
内容的提问来源于stack exchange,提问作者roudan
相关产品推荐
相关产品推荐

