Recortar listas#

Una tarea común en Python es recortar partes de listas y tuplas, por ejemplo, para acceder a partes específicas de las listas.

Comencemos con una lista de números

data = [34, 0, 65, 23, 51, 9, 50, 78, 34, 100]

Podemos determinar cuántos elementos hay en data:

len(data)
10

Como se mostró anteriormente, podemos acceder a elementos específicos pasando un índice. El conteo del índice de elementos comienza en 0.

data[0]
34
data[1]
0

También podemos pasar índices negativos. Esto accederá a los elementos desde el final de la lista. El último elemento tiene el índice -1.

data[-1]
100
data[-2]
34

Seleccionando rangos en listas#

También podemos generar una nueva lista que contenga los primeros tres elementos. Para ello, pasamos un rango en forma [inicio:fin]. El primer elemento tiene el índice inicio y el último elemento de la nueva lista estará justo antes de fin.

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[0:2]
[34, 0]
data[0:3]
[34, 0, 65]
data[1:2]
[0]

Además, no tenemos que especificar ni inicio ni fin si queremos seleccionar todas las entradas en una lista desde el principio o hasta el final.

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[:2]
[34, 0]
data[:3]
[34, 0, 65]
data[2:]
[65, 23, 51, 9, 50, 78, 34, 100]
data[3:]
[23, 51, 9, 50, 78, 34, 100]

Esto también funciona con índices negativos

data[-2:]
[34, 100]

Saltando sobre entradas en listas#

El : también se puede usar para proporcionar un tamaño de paso usando la sintaxis [inicio:fin:paso].

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]

Por ejemplo, podemos seleccionar cada segundo elemento comenzando por el primero:

data[0:10:2]
[34, 65, 51, 50, 34]
data[::2]
[34, 65, 51, 50, 34]

También podemos comenzar desde el segundo elemento (índice 1):

data[1::2]
[0, 23, 9, 78, 100]

Tuplas#

Todos los conceptos introducidos anteriormente también funcionan con tuplas

immutable_data = tuple(data)
immutable_data
(34, 0, 65, 23, 51, 9, 50, 78, 34, 100)
immutable_data[:5]
(34, 0, 65, 23, 51)

Ejercicio#

Por favor, seleccione los tres números 23, 9 y 78 de data usando un solo comando de Python similar a los comandos mostrados anteriormente.