En Python, el corte de listas es una práctica común y es la técnica más utilizada por los programadores para resolver problemas de manera eficiente. Considere una lista de python. Para acceder a un rango de elementos en una lista, necesita dividir una lista. Una forma de hacer esto es usar el operador de corte simple, es decir, dos puntos ( 🙂
Con este operador, se puede especificar dónde comenzar el corte, dónde terminar y especificar el paso. La segmentación de listas devuelve una lista nueva a partir de la lista existente.
Sintaxis:
Lst[ Initial : End : IndexJump ]
Si Lst es una lista, la expresión anterior devuelve la parte de la lista desde el índice Initial hasta el índice End , con un tamaño de paso IndexJump .
Indexación
1. Índices positivos
A continuación se muestra un programa simple para mostrar una lista completa mediante el corte.
Python3
# Initialize list Lst = [50, 70, 30, 20, 90, 10, 50] # Display list print(Lst[::])
Producción:
[50, 70, 30, 20, 90, 10, 50]
El diagrama anterior ilustra una lista Lst con sus valores de índice y elementos.
2. Índices negativos
Ahora, veamos el siguiente diagrama que ilustra una lista junto con sus índices negativos.
El índice -1 representa el último elemento y -n representa el primer elemento de la lista (considerando n como la longitud de la lista). Las listas también se pueden manipular utilizando índices negativos.
Python3
# Initialize list Lst = [50, 70, 30, 20, 90, 10, 50] # Display list print(Lst[-7::1])
Producción:
[50, 70, 30, 20, 90, 10, 50]
El programa anterior muestra la lista completa usando el índice negativo en el corte de lista.
3. Rebanar
Como se mencionó anteriormente, el corte de listas es una práctica común en Python y se puede usar tanto con índices positivos como con índices negativos. El siguiente diagrama ilustra la técnica de segmentación de listas:
El siguiente programa transforma la ilustración anterior en código python:
Python3
# Initialize list Lst = [50, 70, 30, 20, 90, 10, 50] # Display list print(Lst[1:5])
Producción:
[70, 30, 20, 90]
A continuación se muestran algunos ejemplos que representan el uso de la segmentación de listas en Python:
Ejemplo 1:
Python3
# Initialize list List = [1, 2, 3, 4, 5, 6, 7, 8, 9] # Show original list print("\nOriginal List:\n", List) print("\nSliced Lists: ") # Display sliced list print(List[3:9:2]) # Display sliced list print(List[::2]) # Display sliced list print(List[::])
Producción:
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]
Dejar cualquier argumento como Initial , End o IndexJump en blanco conducirá al uso de valores predeterminados, es decir, 0 como Initial , la longitud de la lista como End y 1 como IndexJump .
Ejemplo 2:
Python3
# Initialize list List = ['Geeks', 4, 'geeks !'] # Show original list print("\nOriginal List:\n", List) print("\nSliced Lists: ") # Display sliced list print(List[::-1]) # Display sliced list print(List[::-3]) # Display sliced list print(List[:1:-2])
Producción:
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']
Se puede generar una lista invertida utilizando un entero negativo como argumento IndexJump . Dejando el Inicial y el Fin en blanco . Necesitamos elegir el valor inicial y final de acuerdo con una lista invertida si el valor de IndexJump es negativo.
Ejemplo 3:
Python3
# Initialize list List = [-999, 'G4G', 1706256, '^_^', 3.1496] # Show original list print("\nOriginal List:\n", List) print("\nSliced Lists: ") # Display sliced list print(List[10::2]) # Display sliced list print(List[1:1:1]) # Display sliced list print(List[-1:-1:-1]) # Display sliced list print(List[:0:])
Producción:
Original List: [-999, 'G4G', 1706256, '^_^', 3.1496] Sliced Lists: [] [] [] []
Si se hacen algunas expresiones de corte que no tienen sentido o no son computables, se generan listas vacías.
Ejemplo 4:
Python3
# Initialize list List = [-999, 'G4G', 1706256, 3.1496, '^_^'] # Show original list print("\nOriginal List:\n", List) print("\nSliced Lists: ") # Modified List List[2:4] = ['Geeks', 'for', 'Geeks', '!'] # Display sliced list print(List) # Modified List List[:6] = [] # Display sliced list print(List)
Producción:
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']
La segmentación de listas se puede utilizar para modificar listas o incluso eliminar elementos de una lista.
Ejemplo 5:
Python3
# Initialize list List = [1, 2, 3, 4, 5, 6, 7, 8, 9] # Show original list print("\nOriginal List:\n", List) print("\nSliced Lists: ") # Creating new List newList = List[:3]+List[7:] # Display sliced list print(newList) # Changing existing List List = List[::2]+List[1::2] # Display sliced list print(List)
Producción:
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]
Al concatenar listas divididas, se puede crear una nueva lista o incluso modificar una lista preexistente.
Publicación traducida automáticamente
Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA