2012-04-09 55 views
7

Tôi cần chèn khoảng trắng sau một số ký tự nhất định trong một chuỗi. Văn bản là một câu không có dấu cách và nó cần được phân chia bằng dấu cách sau mỗi ký tự n.Làm cách nào để chèn khoảng trắng sau một số ký tự nhất định trong chuỗi bằng python?

vì vậy nó phải là một cái gì đó như thế này.

thisisarandomsentence 

và tôi muốn nó trở lại như:

this isar ando msen tenc e 

chức năng mà tôi đã là:

def encrypt(string, length): 

là có anyway để làm điều này trên python?

+0

Có người hỏi một câu hỏi gần như chính xác như thế này ... http://stackoverflow.com/questions/10055631/how- do-i-insert-dấu cách-vào-một-chuỗi-sử dụng-the-range-function/10055656 # 10055656 – jamylak

+0

có thể trùng lặp: http://stackoverflow.com/questions/10055631/how-do-i-insert-spaces -into-a-string-using-th e-range-function –

+0

Đây cũng là loại tương tự: http://stackoverflow.com/questions/10061008/generating-all-n-tuples-from-a-string/10061368 – jamylak

Trả lời

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

encrypt('thisisarandomsentence',4) cho

'this isar ando msen tenc e' 
+0

CNTT ĐÃ LÀM VIỆC !!! bạn thật tuyệt! thankyou – user15697

+0

Để tương thích với python 3 thay thế xrange theo phạm vi –

1

Sử dụng 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 :) cũng đã hoạt động !! đã tìm kiếm điều này trong 6 giờ qua !! – user15697

Các vấn đề liên quan