Alguien me dio una sintaxis para truncar una cadena como la siguiente:

string = "My Text String"

print string [0:3] # This is just an example

No estoy seguro de lo que esto se llama (la cadena[0:3] sintaxis), así que he tenido un momento difícil tratando de buscar en internet y entender cómo funciona. Hasta ahora creo que funciona así:

  • cadena[0:3] # devuelve los 3 primeros caracteres de la cadena
  • cadena[0:-3] # devolverá los 3 últimos caracteres de la cadena
  • cadena[3:-3] # parece truncar los primeros 3 caracteres y los 3 últimos caracteres
  • cadena[1:0] # me devuelve 2 comillas simples….no está seguro de lo que esto está haciendo
  • cadena[-1:1] # lo mismo que la última

De todos modos, hay probablemente algunos otros ejemplos que puedo agregar, pero mi punto es que soy nuevo en esta funcionalidad, y me pregunto cómo se llama y donde puedo encontrar más información sobre esto. Estoy seguro de que me estoy perdiendo una buena referencia en algún lugar.

Gracias por cualquier sugerencia,
Mike

Se llama una rebanada y la operación se llama en rodajas.
Consulte esta famosa pregunta.
Este diagrama, en el enlace proporcionado por @DSM: stackoverflow.com/a/509297/401828
Gracias por nombrar a este kindall y gracias por la pila de correos de referencia DSM!

OriginalEl autor Mike | 2012-04-05

3 Comentarios

  1. 21

    Se llama un slice:

    s[i:j:k]

    La rebanada de s de i a j se define como la secuencia de elementos con
    índice k tal que i <= k < j. Si i o j es mayor que len(s), uso
    len(s). Si se omite i o Ninguno, uso 0. Si j es omitido o Ninguno, uso
    len(s). Si i es mayor que o igual a j, el sector está vacía.

    fuente

    Muchas gracias Uku! Gracias por darle un nombre y un buen ejemplo de cómo funciona. Muy apreciada!

    OriginalEl autor Uku Loskit

  2. 9

    Como @Uku y @thebjorn dijo que su llamado Rebanar

    Pero de una forma más fácil de pensar es considerar una Cadena como una lista, por ejemplo, usted puede hacer:

    text = 'Any String'
    for letter in text:
        print letter

    Y de la misma manera si usted desea conseguir una letra específica dentro de la cadena:

    >> text = 'Any String'
    >> text[4]
    'S'

    ps.: Recuerda que es basado en cero, así que el texto[4] el retorno de la 5ª carta.

    Utilizando Rebanada va a devolver un «subcadena» texto[i:j] de su Cadena original, donde «i» son el índice inicial (inclusive) y «j» son el fin de índice (exclusivo), por ejemplo:

    >> text = 'Any String'
    >> text[4:6] # from index 4 to 6 exclusive, so it returns letters from index 4 and 5
    'St'
    >> text[0:4]
    'Any '
    >> text[:4] # omiting the "i" index means i = 0
    'Any '
    >> text[4:] # omitting the "j" index means until the end of the string

    Un índice negativo es relativa a la final de la Cadena como una sustitución de la negativa del índice de «len(texto) + i».

    En nuestro caso len(texto) es de 10, un índice negativo -1 será como el uso de texto[9] para obtener el último elemento, -2 devolverá el último, pero uno de los elementos y así sucesivamente.

    En los ejemplos que usted envió, cadena[0:-3] debe devolver todo, pero los últimos 3 caracteres y cadenas[3:-3] debe devolver todo, pero los 3 primeros y los 3 últimos.

    Espero que helpped.

    OriginalEl autor Guedes

Dejar respuesta

Please enter your comment!
Please enter your name here