2017-03-10 1 views
-1

내가 TC의 특정 지점에 문자열 (다중 점) 그래서 예를 들어분할 특정 지점에 문자열

string = "AAATTTCCCGGGAAATTTCCCGGGAAATTTCCCGGG" 

분할을 분할하려고 [1]의 (a 딕셔너리에서이를 얻을 필요가있어 수 다른 것일 수 있음)

나는 이제 분할을 사용하지만 TC를 잃지 만 계속 유지해야합니다.

분할 점은 변수이지만 작은 예입니다.

특정 경우
+0

주 멀리? – MSD

답변

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'] 
+0

실 거예요 TC는 뭔가 다른뿐만 아니라 수 있고 여러 변수에 사용할 수 있어야합니다 (이 경우에는 TC) dict에서 값을 가져올 필요가 있고 문자열에 있는지 확인한 다음 분할해야합니다. 문자열의 해당 지점에 –

+0

@NathanWeesie는 다음 예제를 사용하여 질문을 개선하고 싶을 수 있습니다 ...하지만 대체 텍스트 인 키를 사용하여 검색하려는 항목에 대해 'dict'을 반복 할 수있는 것처럼 들립니다. 그런 다음 위와 동일하게 수행하십시오. –