Introducción
Bienvenidos a este laboratorio práctico sobre Listas y Tuplas en Python. Las listas son una de las estructuras de datos más fundamentales y versátiles en Python, ya que permiten almacenar colecciones ordenadas de elementos. Las tuplas son similares, pero con una diferencia clave: son inmutables.
A lo largo de este laboratorio, aprenderán a crear listas, acceder y manipular sus elementos, y realizar operaciones comunes como ordenar e iterar (looping). También explorarán las tuplas y comprenderán cuándo usarlas en lugar de las listas.
Este entorno de laboratorio es un WebIDE preconfigurado. Todos los archivos necesarios para este laboratorio han sido creados para usted en el directorio /home/labex/project. Empecemos.
Accediendo a Elementos de la Lista
En este paso, aprenderás a recuperar elementos de una lista usando índices y cómo extraer sublistas usando slicing (rebanado). Las listas son colecciones ordenadas de elementos encerrados entre corchetes [].
Primero, abre el archivo step1_access.py desde el explorador de archivos de la izquierda. Escribiremos nuestro código en este archivo.
Nota: Si no estás familiarizado con el uso de WebIDE (similar a VS Code), por favor, apréndelo primero en este laboratorio.
Obteniendo Valores con Índices
Se accede a los elementos de la lista utilizando un índice basado en cero, lo que significa que el primer elemento está en el índice 0.
Añade el siguiente código a step1_access.py para crear una lista y acceder a su primer elemento:
## step1_access.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Acceder al primer elemento (índice 0)
print(furniture[0])
Para ejecutar el script, abre una terminal en el WebIDE y ejecuta el siguiente comando:
python3 /home/labex/project/step1_access.py
Deberías ver el primer elemento de la lista impreso en la consola.
Salida:
table
Índices Negativos
También puedes usar índices negativos para acceder a elementos desde el final de la lista. El índice -1 se refiere al último elemento, -2 al penúltimo, y así sucesivamente.
Modifica step1_access.py para acceder al último elemento:
## step1_access.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Acceder al último elemento (índice -1)
print(furniture[-1])
Ejecuta el script de nuevo:
python3 /home/labex/project/step1_access.py
Salida:
shelf
Obteniendo Sublistas con Slices
El slicing (rebanado) te permite obtener una sublista usando la sintaxis [inicio:fin]. El índice inicio es inclusivo y el índice fin es exclusivo.
Practiquemos esto. Para tu tarea de verificación, modifica step1_access.py para crear una lista e imprimir una porción (slice) de ella. Reemplaza el contenido existente con el siguiente código:
## step1_access.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Obtener una sublista desde el índice 1 hasta (pero sin incluir) el índice 3
sublist = furniture[1:3]
print(sublist)
Ejecuta el script para ver el resultado:
python3 /home/labex/project/step1_access.py
Salida:
['chair', 'rack']
También puedes crear una copia de una lista usando un slice completo [:]. Cualquier modificación a la lista original no afectará a la copia.
## step1_access.py
spam = ['cat', 'bat', 'rat', 'elephant']
spam2 = spam[:] ## Crear una copia superficial (shallow copy)
spam.append('dog')
print(spam)
print(spam2)
Ejecuta el script:
python3 /home/labex/project/step1_access.py
Salida:
['cat', 'bat', 'rat', 'elephant', 'dog']
['cat', 'bat', 'rat', 'elephant']
Una vez que hayas impreso con éxito la porción ['chair', 'rack'], haz clic en el botón Verify para proceder al siguiente paso.
Modificación y Manipulación de Listas
En este paso, explorará cómo gestionar y modificar el contenido de las listas. Esto incluye cambiar valores, combinar listas y añadir nuevos elementos.
Abra el archivo step2_modify.py para comenzar.
Obtener la Longitud de la Lista con len()
La función len() devuelve el número de elementos en una lista.
Agregue este código a step2_modify.py:
## step2_modify.py
furniture = ['table', 'chair', 'rack', 'shelf']
print(len(furniture))
Ejecute el script:
python3 /home/labex/project/step2_modify.py
Salida:
4
Cambiar Valores con Índices
Puede cambiar un elemento en una lista asignando un nuevo valor a su índice.
## step2_modify.py
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0] = 'desk' ## Cambiar el primer elemento
print(furniture)
Ejecute el script:
python3 /home/labex/project/step2_modify.py
Salida:
['desk', 'chair', 'rack', 'shelf']
Concatenación y Replicación
Puede combinar dos listas usando el operador + (concatenación) o repetir el contenido de una lista usando el operador * (replicación).
## step2_modify.py
list1 = [1, 2, 3]
list2 = ['A', 'B', 'C']
combined_list = list1 + list2
print(combined_list)
replicated_list = ['X'] * 3
print(replicated_list)
Ejecute el script:
python3 /home/labex/project/step2_modify.py
Salida:
[1, 2, 3, 'A', 'B', 'C']
['X', 'X', 'X']
Añadir Valores con append() e insert()
- El método
append()añade un elemento al final de la lista. - El método
insert()añade un elemento en un índice especificado.
Para su tarea de verificación, combinaremos estas operaciones. Reemplace el contenido de step2_modify.py con el siguiente código. Este script creará una lista, añadirá un elemento al final e insertará otro al principio.
## step2_modify.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Añadir 'bed' al final de la lista
furniture.append('bed')
## Insertar 'desk' al principio de la lista (índice 0)
furniture.insert(0, 'desk')
print(furniture)
Ejecute el script para ver la lista final modificada:
python3 /home/labex/project/step2_modify.py
Salida:
['desk', 'table', 'chair', 'rack', 'shelf', 'bed']
Una vez que su script produzca la salida correcta, haga clic en Verify.
Eliminar Valores y Ordenar
En este paso, aprenderá diferentes formas de eliminar elementos de una lista y cómo ordenar el contenido de una lista.
Por favor, abra el archivo step3_remove.py.
Eliminación de Valores
Python proporciona varias formas de eliminar elementos de una lista:
- Sentencia
del: Elimina un elemento en un índice específico. - Método
remove(): Elimina la primera aparición de un valor específico. - Método
pop(): Elimina y devuelve un elemento en un índice específico (o el último elemento si no se proporciona un índice).
Veámoslos en acción. Agregue esto a step3_remove.py:
## step3_remove.py
furniture = ['table', 'chair', 'rack', 'shelf']
del furniture[2] ## Elimina 'rack'
print(furniture)
furniture.remove('chair') ## Elimina 'chair'
print(furniture)
Ejecute el script:
python3 /home/labex/project/step3_remove.py
Salida:
['table', 'chair', 'shelf']
['table', 'shelf']
Ordenación de Valores con sort()
El método sort() ordena la lista in situ (modifica la lista original). Por defecto, ordena en orden ascendente.
## step3_remove.py
numbers = [2, 5, 3.14, 1, -7]
numbers.sort()
print(numbers)
letters = ['a', 'z', 'A', 'Z']
letters.sort(key=str.lower) ## Ordenación insensible a mayúsculas/minúsculas
print(letters)
Ejecute el script:
python3 /home/labex/project/step3_remove.py
Salida:
[-7, 1, 2, 3.14, 5]
['a', 'A', 'z', 'Z']
Para su tarea de verificación, debe crear una lista, eliminar un elemento específico y luego ordenar los elementos restantes. Reemplace el contenido de step3_remove.py con lo siguiente:
## step3_remove.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Eliminar el elemento 'rack'
furniture.remove('rack')
## Ordenar la lista alfabéticamente
furniture.sort()
print(furniture)
Ejecute el script para ver el resultado:
python3 /home/labex/project/step3_remove.py
Salida:
['chair', 'shelf', 'table']
Después de que su script elimine y ordene la lista correctamente, haga clic en Verify.
Bucles y Técnicas Avanzadas
En este paso, dominará cómo iterar sobre listas y utilizará algunas técnicas de lista avanzadas pero muy útiles.
Abra el archivo step4_loop.py para esta sección.
Iteración con for
Un bucle for es la forma estándar de iterar sobre los elementos de una lista.
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
for item in furniture:
print(item)
Ejecute el script:
python3 /home/labex/project/step4_loop.py
Salida:
table
chair
rack
shelf
Obtener Índice y Valor con enumerate()
Si necesita tanto el índice como el valor durante la iteración, utilice la función enumerate().
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
for index, item in enumerate(furniture):
print(f'index: {index} - item: {item}')
Ejecute el script:
python3 /home/labex/project/step4_loop.py
Salida:
index: 0 - item: table
index: 1 - item: chair
index: 2 - item: rack
index: 3 - item: shelf
Los Operadores in y not in
Estos operadores le permiten verificar si un valor existe dentro de una lista.
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
print('rack' in furniture)
print('bed' not in furniture)
Ejecute el script:
python3 /home/labex/project/step4_loop.py
Salida:
True
True
Iteración en Múltiples Listas con zip()
La función zip() es perfecta para procesar múltiples listas en paralelo. Empareja elementos de cada lista.
Para su tarea de verificación, utilizará zip() para combinar dos listas. Reemplace el contenido de step4_loop.py con el siguiente código. Iterará sobre los artículos de mobiliario y sus precios correspondientes, imprimiendo una cadena formateada para cada par.
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
price = [100, 50, 80, 40]
for item, amount in zip(furniture, price):
print(f'The {item} costs ${amount}')
Ejecute el script para ver la salida combinada:
python3 /home/labex/project/step4_loop.py
Salida:
The table costs $100
The chair costs $50
The rack costs $80
The shelf costs $40
Una vez que su script funcione correctamente, haga clic en Verify.
Comprender las Tuplas (Tuples)
En este paso final, aprenderá sobre el tipo de dato tupla. Las tuplas son similares a las listas, pero son inmutables, lo que significa que su contenido no puede cambiarse después de su creación.
Abra el archivo step5_tuple.py.
El Tipo de Dato Tupla
Las tuplas se definen con paréntesis () en lugar de corchetes. Debido a que son inmutables, no se pueden cambiar, agregar o eliminar elementos una vez que la tupla ha sido creada. Esto las hace más eficientes en memoria y útiles para datos que no deben ser alterados.
Puede acceder a los elementos de la tupla usando índices y slices (rebanadas), al igual que con las listas.
## step5_tuple.py
furniture = ('table', 'chair', 'rack', 'shelf')
## Accediendo a elementos
print(furniture[0])
## Slicing (Rebanado)
print(furniture[1:3])
## Obteniendo la longitud
print(len(furniture))
Ejecute el script:
python3 /home/labex/project/step5_tuple.py
Salida:
table
('chair', 'rack')
4
Si intenta modificar una tupla, Python generará un TypeError. Por ejemplo, furniture[0] = 'desk' causaría un error.
Conversión entre list() y tuple()
Puede convertir fácilmente entre listas y tuplas utilizando las funciones constructoras list() y tuple().
Para su tarea de verificación, convertirá una lista en una tupla. Reemplace el contenido de step5_tuple.py con el siguiente código:
## step5_tuple.py
## Una lista de elementos
my_list = ['cat', 'dog', 5]
## Convertir la lista a una tupla
my_tuple = tuple(my_list)
print(my_tuple)
Ejecute el script para ver la tupla resultante:
python3 /home/labex/project/step5_tuple.py
Salida:
('cat', 'dog', 5)
También puede convertir una tupla de vuelta a una lista si necesita modificarla:
## step5_tuple.py
my_tuple = ('cat', 'dog', 5)
my_list = list(my_tuple)
print(my_list)
Ejecute el script:
python3 /home/labex/project/step5_tuple.py
Salida:
['cat', 'dog', 5]
Una vez que su script convierta exitosamente la lista a una tupla y la imprima, haga clic en Verify para completar el laboratorio.
Resumen
¡Felicidades por completar el laboratorio! Ha adquirido una comprensión sólida de las estructuras de datos fundamentales de Python: listas y tuplas.
Ha aprendido a:
- Crear listas y acceder a elementos utilizando índices positivos y negativos.
- Extraer sublistas utilizando slicing (rebanado).
- Modificar listas cambiando valores, agregando elementos con
append()einsert(), y eliminándolos condel,remove()ypop(). - Ordenar listas en su lugar utilizando el método
sort(). - Iterar a través de listas de manera efectiva usando bucles
for,enumerate()yzip(). - Comprender la naturaleza inmutable de las tuplas y convertir entre listas y tuplas.
Estas habilidades son fundamentales para cualquier programador de Python y serán invaluables en sus futuros proyectos.



