2012-04-09 2 views
7

문자열에 특정 양의 문자 뒤에 공백을 삽입해야합니다. 텍스트는 공백이없는 문장이며 n 문자마다 공백으로 분할해야합니다.파이썬을 사용하여 문자열에 일정량의 문자 다음에 공백을 삽입하는 방법은 무엇입니까?

이렇게해야합니다.

thisisarandomsentence 

그리고 그것이로 돌아가려면 :

this isar ando msen tenc e 

I는 한 기능 :

def encrypt(string, length): 

이 파이썬에서 할 어쨌든 거기를?

+0

누군가가 이런 식으로 거의 정확하게 질문을 ... http://stackoverflow.com/questions/10055631/how- 입력 - 공백 - 문자열 - 사용 범위 기능/10055656 # 10055656 – jamylak

+0

가능한 중복 : http://stackoverflow.com/questions/10055631/how-do-i-insert-spaces -into-a-string-using-th e- 범위 함수 –

+0

또한 이것은 좀 비슷합니다 : http://stackoverflow.com/questions/10061008/generating-all-n-tuples-from-a-string/10061368 – jamylak

답변

11
def encrypt(string, length): 
    return ' '.join(string[i:i+length] for i in xrange(0,len(string),length)) 

encrypt('thisisarandomsentence',4)

'this isar ando msen tenc e' 
+0

IT WORKED !!! 당신 정말 대단하네요! 감사합니다 – user15697

+0

python 3와 호환되도록 xrange 범위를 –

1

itertools grouper recipe를 사용하여 제공합니다

>>> from itertools import izip_longest 
>>> def grouper(n, iterable, fillvalue=None): 
     "Collect data into fixed-length chunks or blocks" 
     # grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx 
     args = [iter(iterable)] * n 
     return izip_longest(fillvalue=fillvalue, *args) 

>>> text = 'thisisarandomsentence' 
>>> block = 4 
>>> ' '.join(''.join(g) for g in grouper(block, text, '')) 
'this isar ando msen tenc e' 
+1

thankyou로 대체하십시오 :) ^^ 지난 6 시간 동안 이것을 검색했습니다 !! – user15697

관련 문제