如何按两个指定分隔符拆分字符串并分别存入对应列表?
按双分隔符拆分字符串并分类存储
当然有办法啦!针对你的需求,我们可以利用Python的正则表达式模块re来实现——它支持在拆分时捕获分隔符,这样就能清楚知道每个拆分出的片段该归入哪个列表了。
具体实现代码
import re a = "Hi thereu1hello ?u1Whatu2Goodu1Work worku2Stacku2" # 使用正则捕获分隔符u1或u2 split_parts = re.split(r'(u1|u2)', a) u1_list = [] u2_list = [] # 遍历拆分后的结果,每两个元素为一组(内容 + 分隔符) for i in range(0, len(split_parts)-1, 2): content = split_parts[i] separator = split_parts[i+1] if not content: # 跳过空内容 continue if separator == 'u1': u1_list.append(content) elif separator == 'u2': u2_list.append(content) print("u1 =", u1_list) print("u2 =", u2_list)
运行结果
u1 = ["Hi there", "hello ?", "Good"] u2 = ["What", "Work work", "Stack"]
思路解释
- 正则拆分捕获分隔符:
re.split(r'(u1|u2)', a)会把字符串按u1或u2拆分,同时把分隔符本身也保留在结果列表中,这样我们就能知道每个内容片段是跟着哪个分隔符的。 - 分组遍历分类:拆分后的列表是
[内容1, 分隔符1, 内容2, 分隔符2, ...]的结构,所以我们每两个元素一组遍历,根据分隔符把对应的内容加入到u1_list或u2_list中。 - 空内容过滤:避免把拆分后产生的空字符串加入列表,保证结果的整洁。
这个方法灵活度很高,哪怕后续要增加更多分隔符,只需要修改正则表达式里的匹配项和对应的列表处理逻辑就行啦!
内容的提问来源于stack exchange,提问作者mr.SomeBody
相关产品推荐
相关产品推荐

