我想通过一个特定的分隔符拆分列表中的每个字符串,然后将每个解析出来的字符串添加到一个新列表中。为了方便起见,对于每次解析,我希望在一个字符串的末尾添加一个字符,并在下一个字符串的开头添加一个字符,以便跟踪分隔位置。例如:
TestString = 'AAABA'
parsed = TestString.split('B')
print(parsed)
将输出:
['AAA','A']
I would like the output to be:
['AAAx', 'xA']
我正在寻找一个能够处理仅包含我的分隔符的字符串的解决方案。我的最终目标将涉及解析大量字符串列表(每个列表中有1-1000个字符串,字符串长度变化不定)。另一个例子:
TestList = ['A', 'B', 'AB', 'BA', 'BBB','ABA', 'AAA']
Parsed = []
for i in range(len(TestList)):
parsed = TestList[i].split('B')
Parsed.extend(parsed)
print(Parsed)
将会输出:
['A', '', '', 'A', '', '', 'A', '', '', '', '', 'A', 'A', 'AAA']
我希望输出的结果如下:
我希望输出的结果如下:
['A','x', 'x', 'Ax', 'x', 'x', 'xA', 'x', 'xx', 'xx', 'x', 'Ax', 'xA', 'AAA']
将'B'分成['x'和'x']
; 'BB'分成['x','xx','x']
,等等。
有没有简单的方法可以实现这个功能?我尝试过使用正则表达式,但在应用(或编译)我的模式到数据集中的变量字符串长度时遇到了麻烦。我在stackoverflow上搜索并进行了一些在线搜索,但找不到非常有用的东西。我知道我可以在字符串的开头和结尾添加字符,但任何解决方案都不应该在未解析的字符串中添加字符。我考虑尝试添加一堆“if”条件语句,以尝试覆盖所有可能性,但这似乎会很麻烦,如果有更简单的解决方案,我更喜欢。
编辑:回应评论,我真的想把我的字符串“切成一半的“B”单位,并添加一个表示一半“B”单位的字符。
在下面的图像中,黑线表示一串“A”。箭头左边:仅带有明确绘制的“B”单位的单个字符串。箭头右侧:在“B”上解析后,将产生3个字符串。每个“B”单位被切成两半并替换为“x”。
思考示例'BBB'
,第一次解析将导致['x','xBB']
。第二步结果为['x','xx','xB']
。最后一步结果为['x','xx','xx','x']
解析后,将不再存在“B”单位。这是一个与化学相关的问题,“xx”和“B”实际上是不同的实体(即使“x”是“B”单位的一半)。值得注意的是,将'AAABAAA'
解析为['AAAx','xAAA']
很重要,因为这两个字符串都不等同于一开始根本不包含'B'
单位的字符串'AAA'
。
List = ["AB", "BB", "BA"]
,你想要的是:"ABx xBBx xBA" 吗? - Evorage"BBB"
会变成['x', 'xx', 'xx', 'x']
?那么"BBBB"
和"BBBBB"
会变成什么呢?如果像"ABBA"
或者像"ABABBBABBAA"
这样复杂的元素(我假设有,因为有些字符串长度为1000),会怎么样呢?感谢您的澄清。 - ggorlen