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.