Python 3.4- Insertando espacios a intervalos regulares

Estoy intentando que Python me permita insertar un espacio a intervalos regulares (cada 5º carácter), en una cadena. Este es mi código:

str1 = "abcdefghijklmnopqrstuvwxyz" list1 = [] list2 = [] count = 3 space = " " # converting string to list for i in str1: list1.append(i) print(list1) # inserting spaces for i in list1: mod = count%6 count = count + 1 if mod == 0: list1.insert(count,space) count = count + 1 #converting back to a string list2 = "".join(list1) print(str(list2)) 

sin embargo, agrupa la primera sección como 7. ¿Puede alguien ayudarme a solucionar esto?

Muy fácil con una expresión regular:

 >>> import re >>> ' '.join(re.findall(r'.{1,5}', str1)) 'abcde fghij klmno pqrst uvwxy z' 

O utilice una rebanada:

 >>> n=5 >>> ' '.join([str1[i:i+n] for i in range(0, len(str1), n)]) 'abcde fghij klmno pqrst uvwxy z' 

En un script paso a paso:

Puede usar el módulo de string para obtener todas las letras ASCII en minúsculas:

 from string import ascii_lowercase 

Ahora, puedes iterar cada cinco caracteres y agregar un espacio usando lo siguiente:

 result = "" for i in range(0,len(ascii_lowercase), 5): result += ascii_lowercase[i:i+5] + ' ' print(result) 

Imprime el siguiente resultado:

 abcde fghij klmno pqrst uvwxy z