Python: notaci贸n de corte en la lista

    Introducci贸n

    El t茅rmino segmentar en programaci贸n generalmente se refiere a obtener una subcadena, subtupla o sublista de una cadena, tupla o lista, respectivamente.

    Python ofrece una variedad de formas sencillas de dividir no solo estos tres, sino cualquier iterable. Un iterable es, como su nombre indica, cualquier objeto sobre el que se pueda iterar.

    En este art铆culo, repasaremos todo lo que necesita saber sobre las listas de corte en Python.

    Cortar una lista en Python

    Hay un par de formas de dividir una lista, la m谩s com煤n es mediante el uso de : operador con la siguiente sintaxis:

    a_list[start:end]
    a_list[start:end:step]
    

    los start par谩metro representa el 铆ndice inicial, end es el 铆ndice final, y step es el n煤mero de elementos sobre los que se “pasa”.

    Si step no se proporciona expl铆citamente, el valor predeterminado es 1. Tenga en cuenta que el elemento con el 铆ndice start se incluir谩 en la sublista resultante, pero el elemento con el 铆ndice end no lo ser谩. El primer elemento de una lista tiene el 铆ndice de 0.

    Ejemplo sin el step par谩metro:

    # A list of strings:
    a_list = ['May', 'the', 'Force', 'be', 'with', 'you.']
    sublist = a_list[1:3]
    print(sublist)
    

    Esto deber铆a imprimir:

    ['the', 'Force']
    

    Para omitir cualquier otra palabra, configure step a 2:

    a_list = ['The', 'Force', 'will', 'be', 'with', 'you.', 'Always.']
    sublist = a_list[1:8:2]
    print(sublist)
    

    Salida:

    ['Force', 'be', 'you.']
    

    Si step no aparece en la lista, la sublista comenzar谩 desde el principio. Asimismo, si end no est谩 en la lista, la sublista terminar谩 al final de la lista original:

    a_list = ['Do.', 'Or', 'do', 'not.', 'There', 'is', 'no', 'try.']
    sublist = a_list[:4]
    print(sublist)
    sublist = a_list[4:]
    print(sublist)
    

    Ese fragmento de c贸digo se imprime:

    ['Do.', 'Or', 'do', 'not.']
    ['There', 'is', 'no', 'try.']
    

    Encontrar el principio y el final de una lista con notaci贸n de sector

    La notaci贸n de sector tambi茅n se puede utilizar con indexaci贸n negativa. La indexaci贸n negativa funciona de la misma manera que la indexaci贸n normal, excepto por el hecho de que comienza a indexar desde el 煤ltimo elemento que tiene el 铆ndice. -1.

    Esto se puede utilizar para obtener el principio y el final de una lista de una longitud determinada. El encabezado de una lista es una sublista que contiene la primera n elementos de una lista, y la cola es una sublista que contiene el 煤ltimo n elementos.

    Sigamos adelante y separemos la cola y la cabeza de una lista:

    # The length of the tail
    n = 2
    a_list = ['Never', 'tell', 'me', 'the', 'odds!']
    
    # Head of the list:
    sublist = a_list[:n]
    print(sublist)
    
    # Tail of the list:
    sublist = a_list[-n:]
    print(sublist)
    

    Esto produce:

    ['Never', 'tell']
    ['the', 'odds!']
    

    Uso de notaci贸n de sector para invertir una lista

    Incluso el step El par谩metro puede ser negativo. Si lo establecemos en un valor negativo, la lista resultante se invertir谩, con el step valor. En lugar de dar un paso adelante, estamos dando un paso atr谩s, desde el final de la lista hasta el principio e incluimos estos elementos:

    a_list = ['Power!', 'Unlimited', 'power!']
    sublist = a_list[::-1]
    print(sublist)
    

    Esto resulta en:

    ['power!', 'Unlimited', 'Power!']
    

    Reemplazo de elementos de una sublista con notaci贸n de sector

    La notaci贸n de sector se puede utilizar para asignar nuevos valores a elementos de una determinada sublista. Por ejemplo, intentemos reemplazar la cola y la cabeza de una lista:

    a_list = ['I', 'am', 'no', 'Jedi.']
    print(a_list)
    # Replacing the head of a list
    a_list[:1] = ['You', 'are']
    print(a_list)
    # Replacing the tail of a list
    a_list[-1:] = ['Sith']
    print(a_list)
    

    El resultado esperado es:

    ['I', 'am', 'no', 'Jedi.']
    ['You', 'are', 'no', 'Jedi.']
    ['You', 'are', 'no', 'Sith']
    

    Reemplazo de cada en茅simo elemento de una lista con notaci贸n de sector

    Una forma sencilla de reemplazar cada n-茅simo elemento de una lista es establecer el step par谩metro a n en la notaci贸n de corte:

     a_list = ['I鈥檓', 'just', 'a', 'simple', 'man', 'trying', 'to', 'make', 'my', 'way', 'in', 'the', 'universe.']
        
    print(a_list)
    
    # Replacing every other word starting with the word with the index 1
    a_list[1::2] = ['only', 'common', 'attempting','do', 'best','the']
    print(a_list)
    

    Esto resulta en:

    ['I鈥檓', 'just', 'a', 'simple', 'man', 'trying', 'to', 'make', 'my', 'way', 'in', 'the', 'universe.']
    ['just', 'simple', 'trying', 'make', 'way', 'the']
    ['I鈥檓', 'only', 'a', 'common', 'man', 'attempting', 'to', 'do', 'my', 'best', 'in', 'the', 'universe.']
    

    Conclusi贸n

    Cortar cualquier secuencia en Python es f谩cil, simple e intuitivo. La indexaci贸n negativa ofrece una manera f谩cil de adquirir los primeros o 煤ltimos elementos de una secuencia, o invertir su orden.

    En este art铆culo, hemos cubierto c贸mo aplicar la notaci贸n de sector en listas en Python.

     

    Etiquetas:

    Deja una respuesta

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