Eliminar el primer carácter de una cadena

2 minutos de lectura

avatar de usuario
Hossein

Me gustaría eliminar el primer carácter de una cadena.

Por ejemplo, mi cadena comienza con un : y quiero eliminar eso solamente. Hay varias ocurrencias de : en la cadena que no debe eliminarse.

Estoy escribiendo mi código en Python.

avatar de usuario
Sven Marnach

pitón 2.x

s = ":dfa:sif:e"
print s[1:]

pitón 3.x

s = ":dfa:sif:e"
print(s[1:])

ambas impresiones

dfa:sif:e

  • Si esta es la respuesta aceptada, entonces la pregunta debería haber sido “¿cómo elimino el primer carácter de una cadena?”.

    – Fantasma espacial

    9 de febrero de 2011 a las 14:25

  • @Spaceghost: el OP dice “Específicamente, quiero eliminar el primer carácter”.

    – Sven Marnach

    9 de febrero de 2011 a las 14:27

  • Tienes razón, solo estaba respondiendo a la diferencia entre el título y el cuerpo de la pregunta. En retrospectiva, debería haber dedicado el tiempo a tomar café. 🙂

    – Fantasma espacial

    9 de febrero de 2011 a las 14:36

avatar de usuario
Fantasma espacial

Su problema parece poco claro. Dices que quieres eliminar “un personaje de cierta posición” y luego dices que quieres eliminar un personaje en particular.

Si solo necesita eliminar el primer carácter, haría lo siguiente:

s = ":dfa:sif:e"
fixed = s[1:]

Si desea eliminar un carácter en una posición particular, haría lo siguiente:

s = ":dfa:sif:e"
fixed = s[0:pos]+s[pos+1:]

Si necesita eliminar un carácter en particular, diga ‘:’, la primera vez que se encuentre en una cadena, entonces haría:

s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))

  • El último ejemplo podría hacerse más fácilmente usando s.replace(":", "", 1)

    – Sven Marnach

    9 de febrero de 2011 a las 14:12

Dependiendo de la estructura de la cadena, puede usar lstrip:

str = str.lstrip(':')

Pero esto eliminaría todos los dos puntos al principio, es decir, si tiene ::fooel resultado seria foo. Pero esta función es útil si también tiene cadenas que no comienzan con dos puntos y no desea eliminar el primer carácter en ese momento.

Solo haz esto:

r = "hello"
r = r[1:]
print(r) # ello

borrando un caracter:

def del_char(string, indexes):

    'deletes all the indexes from the string and returns the new one'

    return ''.join((char for idx, char in enumerate(string) if idx not in indexes))

borra todos los caracteres que están en los índices; puedes usarlo en tu caso con del_char(your_string, [0])

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad