¿Eliminar los primeros x caracteres de la cadena?

116

¿Cómo se pueden eliminar los primeros x caracteres de una cadena? Por ejemplo, si uno tuviera una cadena lipsum, ¿cómo eliminarían los primeros 3 caracteres y obtendrían un resultado de sum?

tkbx
fuente
5
mejor ejemplo si la cantidad de caracteres eliminados no fuera igual a la cantidad de caracteres que quedan. por ejemplo"lipsumm"[3:] == "summ"
Scott Pelak

Respuestas:

213
>>> text = 'lipsum'
>>> text[3:]
'sum'

Consulte la documentación oficial sobre cadenas para obtener más información y esta respuesta SO para obtener un resumen conciso de la notación.

Jamylak
fuente
16

Otra forma (dependiendo de sus necesidades reales): si desea mostrar los primeros n caracteres y guardar tanto los caracteres emergentes como la cadena modificada:

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum
Ken A
fuente
3
Supongo que está metafóricamente "reventado", pero en realidad son solo 2 rebanadas diferentes, sin estallidos reales
Jamylak
9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'
tkbx
fuente
11
Tenga en cuenta que esto es más largo en el código y también llevará más tiempo, ya que debe buscar la subcadena antes de reemplazarla. También: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Seguro que podría solucionar esto con el tercer parámetro (recuento) = 1, pero aún así tomaría más tiempo.
Jamylak
no, está relacionado con tu respuesta, así que pertenece aquí. Puede agregar count = 1 al suyo para que aún funcione por cierto
jamylak
4

Utilice del.

Ejemplo:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'
U10-Adelante
fuente
1
Esto no funciona como piensas text = 'liplip' >>> text.lstrip(text[:3]) ''porque, por ejemplo, el argumento chars no es un prefijo; más bien, todas las combinaciones de sus valores sestr.lstrip([chars])
eliminan
@jamylak Editado mío
U10-Adelante
1
Ninguna de las soluciones funciona, por ejemplo. para 'liplip'. En el segundoTypeError: 'str' object does not support item deletion
jamylak
@jamylak Editado de nuevo
U10-Delantero
@jamylak funciona, ahora, si es así, ¿necesita votar en contra?
Sub10-Delantero
2

Ejemplo para mostrar los últimos 3 dígitos del número de cuenta.

x = '1234567890'   
x.replace(x[:7], '')

o/p: '890'
Pratik Jaswant
fuente
Esto tiene el mismo problema que la respuesta de tkbx
jamylak
p.ej. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
Jamylak
Además, esto ni siquiera responde a la pregunta, está reemplazando caracteres con xs en lugar de eliminarlos
jamylak