2012-04-09 17 views
7

Dizede belirli bir karakterden sonra boşluk eklemem gerekiyor. Metin boşluk içermeyen bir cümle olup her n karakterinden sonra boşluklarla ayrılmalıdır.Python'u kullanarak bir dizede belirli bir karakter miktarından sonra nasıl boşluk ekleyebilirim?

böylece böyle bir şey olmalı.

thisisarandomsentence 

ve ben o kadar dönmek istiyorum:

this isar ando msen tenc e 

I var fonksiyonu:

def encrypt(string, length): 

bu piton yapmak için zaten var mı?

+0

Birisi böyle neredeyse tam bir soru sordu ... http://stackoverflow.com/questions/10055631/how- aralığı-kullanarak-aralığı-boşluk-içine-boşluklar-do-a-dizi-fonksiyonu/10055656 # 10055656 – jamylak

+0

olası yinelenen: http://stackoverflow.com/questions/10055631/how-do-i-insert-spaces -into-a-string kullanan-th e-range-function –

+0

Ayrıca bu benzer: http://stackoverflow.com/questions/10061008/generating-all-n-tuples-from-a-string/10061368 – jamylak

cevap

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

İŞÇİLDİ !!! harikasın! thankyou – user15697

+0

python 3 ile uyumlu olabilmek için xrange menziline göre –

1

itertools grouper recipe kullanma verir:

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

yerine :) teşekkür ettik! son 6 saat boyunca bunu arıyor! – user15697

İlgili konular