2012-04-09 12 views
7

文字列内に一定量の文字の後にスペースを挿入する必要があります。テキストは空白のない文章で、n文字ごとにスペースで区切る必要があります。Pythonを使用して文字列内に一定量の文字の後にスペースを挿入するにはどうすればよいですか?

だから、このようなものにする必要があります。

thisisarandomsentence 

と私はそれを返すようにしたい:

this isar ando msen tenc e 

私が持っている機能は次のとおりです。

def encrypt(string, length): 

は、Pythonでこれを行うには、とにかくはありますか?

+0

誰かがほぼ正確にこのように質問を... http://stackoverflow.com/questions/10055631/how-スペースを使用して文字列を使用するスペースを挿入する/ 10055656#10055656 – jamylak

+0

可能な複製:http://stackoverflow.com/questions/10055631/how-do-i-insert-spaces -int-a-string-using-th e-range-function –

+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)itertools grouper recipeを使用して

'this isar ando msen tenc e' 
+0

IT WORKED !!!あなたは素晴らしいです!よろしくお願いします。 – user15697

+0

python 3と互換性があります。xrangeの範囲を –

1

を与える:

>>> 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

で置き換えてください。この6時間を探しています! – user15697

関連する問題