在某个点上拆分字符串

时间:2017-03-10 08:46:23

标签: python string python-3.x split

我正在尝试在特定点(多个点)上拆分字符串,例如

string = "AAATTTCCCGGGAAATTTCCCGGGAAATTTCCCGGG"

拆分TC [1](需要从dict得到这个可以是其他任何东西),最后用

list = ['AAATTT','CCCGGGAAATTT','CCCGGGAAATTT','CCCGGG']

我现在只使用拆分,但它失去了TC,但我需要保留它们。

分裂点是一个变量,但这只是一个小例子。

1 个答案:

答案 0 :(得分:3)

在您的具体情况下,替换您想要的内容并引入另一个分隔符,例如:

>>> text = "AAATTTCCCGGGAAATTTCCCGGGAAATTTCCCGGG"
>>> text.replace('TC', 'T\tC').split('\t')
['AAATTT', 'CCCGGGAAATTT', 'CCCGGGAAATTT', 'CCCGGG']

扩展多个变量以分割选项:

import re

text = 'AAATTTCCCGGGAAATTTCCCGGGAAATTTCCCGGG'
replacements = {
    'TC': 'T\tC',
    'CG': '\tCG'
}
rx = re.compile('|'.join(re.escape(el) for el in sorted(replacements, key=len, reverse=True)))
res = rx.sub(lambda m: replacements[m.group()], text).split('\t')
# ['AAATTT', 'CC', 'CGGGAAATTT', 'CC', 'CGGGAAATTT', 'CC', 'CGGG']