Saltar al contenido

Cómo repetir caracteres individuales en cadenas en Python

Sofía, miembro de este gran staff, nos hizo el favor de redactar este artículo porque domina muy bien el tema.

Solución:

Qué pasa:

>>> s = '123abc'
>>> n = 3
>>> ''.join([char*n for char in s])
'111222333aaabbbccc'
>>> 

(cambiado a una compilación de lista de una expresión de generador ya que usar una compilación de lista dentro de la combinación es más rápido)

Una alternativa itertools-opción de estilo de complicación excesiva del problema con repeat(), izip() y chain():

>>> from itertools import repeat, izip, chain
>>> "".join(chain(*izip(*repeat(s, 2))))
'112233aabbcc'
>>> "".join(chain(*izip(*repeat(s, 3))))
'111222333aaabbbccc'

O bien, la opción de estilo “Sé expresiones regulares y las usaré para todo”:

>>> import re
>>> n = 2
>>> re.sub(".", lambda x: x.group() * n, s)  # or re.sub('(.)', r'1' * n, s) - thanks Eduardo
'112233aabbcc'

Por supuesto, no utilice estas soluciones en la práctica.

Si quieres repetir individual letras, simplemente puede reemplazar la letra con n letras, por ejemplo

>>> s = 'abcde'
>>> s.replace('b', 'b'*5, 1)
'abbbbbcde'

valoraciones y comentarios

Si eres capaz, eres capaz de dejar un ensayo acerca de qué te ha parecido este post.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *