2016-09-06 3 views
-2

어떤 문자보다 먼저 문자열을 나눌 수 있고 문자 뒤에 문자를 나눌 수 있습니까? 예컨대 :캐릭터 앞뒤에 문자열을 나누는 방법은 무엇입니까?

I 출력 할 방법
x = '846a12' 

:

z = ['846','a','12'] 

이 경우 문제는 내가 내 기능에서 특정 문자 언급한다 (특정 문자를 : 'A'위의 예에서). 입력이 다른 문자 ('b'라고 가정 해 봅시다) 인 경우 함수가 실패합니다. 임의의 문자는 어떻게 처리 할 수 ​​있습니까?

감사합니다.

+3

'846a12'.partition ('A') '? –

+0

예가 "모든 캐릭터"와 어떤 관련이 있습니까? 예를 들어 '846a12b55'가 [ '846', 'a', '12', 'b', '55']로 바뀌어야합니까? 당신이 원하는 일반적인 경우를 적절하게 보여줘야합니다. –

답변

0

당신은 분리 한번 이상이있는 경우에, 이러한 유형의 문제를 해결하기위한 itertools를 사용할 수있는, 예컨대 :

>>> import itertools as it 
>>> [''.join(x) for _, x in it.groupby('846a12', key=lambda c: c=='a')] 
['846', 'a', '12'] 
+0

정말요? 의견에있는 다른 두 가지 해결책 중 하나와 비교할 때 이것은 끔찍한 해결책입니다. 그것은 훨씬 덜 읽기 쉽고, 나는 그것도 덜 효율적이기 때문에 내기를 기꺼이 할 것입니다. –

+0

구분 기호가 하나만있는 경우 동의하고 're'기반 솔루션과 비교할 때 끔찍한 것인지 확실하지 않습니다. – AChampion

+0

아니요, 연결된 속은 분리 기호가 여러 번 나오는 부분을 처리합니다. –

관련 문제