我正在尝试在特定点(多个点)上拆分字符串,例如
string = "AAATTTCCCGGGAAATTTCCCGGGAAATTTCCCGGG"
拆分TC [1](需要从dict得到这个可以是其他任何东西),最后用
list = ['AAATTT','CCCGGGAAATTT','CCCGGGAAATTT','CCCGGG']
我现在只使用拆分,但它失去了TC,但我需要保留它们。
分裂点是一个变量,但这只是一个小例子。
答案 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']