Autor Tema: Repetir letras de un strinG

0 Usuarios y 2 Visitantes están viendo este tema.

19 Noviembre, 2020, 07:49 pm
Leído 181 veces

Quema

  • $$\Large \color{red}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,722
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Hola

Dado un string repetir dos veces las letras de forma consecutiva, es decir de hola que salga hhoollaa. Hice esto, medio casero

b="123abc"

print(b[0:1]*2+b[1:2]*2+b[2:3]*2+b[3:4]*2+b[4:5]*2+b[5:6]*2)

Funciona, pero tengo que ingresar a mano los b[i_i+1]

Me da error cuando le pongo el for i in b.


19 Noviembre, 2020, 08:03 pm
Respuesta #1

mathtruco

  • Moderador Global
  • Mensajes: 4,995
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Hola Quema. Una opción es la siguiente:

Código: [Seleccionar]

b="123abc"

new = ""

for i in b:
    new = new+i*2

print new


Nota que al escribir

Código: [Seleccionar]
for i in b:
estamos iterando sobre cada entrada del string b, es decir, primero i="1", luego i="2", luego i="3", luego i="a", luego i="b" y por último i="c".

Cuando estás en string, el símbolo *2 repite dos veces el string, y el símbolo + concatena string.

_______________________________

Creo que parte de aprender a programar, en especial en python, es entender qué se busca y buscarlo uno mismo. En este problema bastaba buscar en google cómo repetir string y luego como concatenarlos. No sé si hace algún bien entregar el pez en vez de enseñar a pescar. Con esto no quiero decir que dejes de postear este tipo de problemas, es sólo una opinión.

19 Noviembre, 2020, 08:03 pm
Respuesta #2

feriva

  • $$\Large \color{red}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 9,172
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Hola

Dado un string repetir dos veces las letras de forma consecutiva, es decir de hola que salga hhoollaa. Hice esto, medio casero

b="123abc"

print(b[0:1]*2+b[1:2]*2+b[2:3]*2+b[3:4]*2+b[4:5]*2+b[5:6]*2)

Funciona, pero tengo que ingresar a mano los b[i_i+1]

Me da error cuando le pongo el for i in b.

Prueba

Código: [Seleccionar]
s="123456789"
L=[]
for i in (s):
i=i+i
L.append(i)
k="".join(L)
print (k)

Saludos.

19 Noviembre, 2020, 08:29 pm
Respuesta #3

mathtruco

  • Moderador Global
  • Mensajes: 4,995
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Otra forma:

Código: [Seleccionar]
b="123abc"

aux = ""

new = [aux+i*2 for i in b]

print ''.join(new)