Segmentación de listas de Python

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

Deja una respuesta

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