En este laboratorio, explorarás las estructuras de datos fundamentales de Python: listas, tuplas, conjuntos (sets) y diccionarios. Partiendo de los conocimientos adquiridos en laboratorios anteriores, aprenderás a crear, manipular y utilizar estas versátiles estructuras. Esta experiencia práctica profundizará tu comprensión de los conceptos básicos de Python y te preparará para manejar datos más complejos en tus programas.
Trabajando con Listas
En este paso, aprenderás sobre las listas, que son colecciones de elementos ordenadas y mutables en Python.
Abre el intérprete de Python escribiendo el siguiente comando en tu terminal:
python
Deberías ver el prompt de Python (>>>), lo que indica que ya estás dentro del shell interactivo de Python.
Comencemos creando una lista. En el intérprete de Python, escribe lo siguiente:
Puedes usar la comprensión de diccionarios para crearlos de forma concisa:
squares = {x: x**2 for x in range(5)}
print(squares)
Salida:
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Los diccionarios son extremadamente útiles para almacenar y recuperar datos mediante claves únicas.
Poniéndolo Todo en Práctica
En este paso final, crearás un programa que utiliza todas las estructuras de datos que has aprendido en este laboratorio.
Sal del intérprete de Python escribiendo exit() o presionando Ctrl+D.
Abre el WebIDE en el entorno de la VM de LabEx.
Crea un nuevo archivo llamado contact_manager.py en el directorio ~/project:
touch ~/project/contact_manager.py
Abre el archivo recién creado en el editor del WebIDE y añade el siguiente contenido:
def add_contact(contacts, name, phone, email):
contacts[name] = {"phone": phone, "email": email}
print(f"Contact {name} added successfully.")
def remove_contact(contacts, name):
if name in contacts:
del contacts[name]
print(f"Contact {name} removed successfully.")
else:
print(f"Contact {name} not found.")
def display_contacts(contacts):
if contacts:
print("\nContact List:")
for name, info in contacts.items():
print(f"Name: {name}, Phone: {info['phone']}, Email: {info['email']}")
else:
print("Contact list is empty.")
def main():
contacts = {}
favorite_contacts = set()
while True:
print("\nContact Manager")
print("1. Add Contact")
print("2. Remove Contact")
print("3. Display Contacts")
print("4. Add to Favorites")
print("5. Display Favorites")
print("6. Exit")
choice = input("Enter your choice (1-6): ")
if choice == "1":
name = input("Enter name: ")
phone = input("Enter phone number: ")
email = input("Enter email: ")
add_contact(contacts, name, phone, email)
elif choice == "2":
name = input("Enter name to remove: ")
remove_contact(contacts, name)
elif choice == "3":
display_contacts(contacts)
elif choice == "4":
name = input("Enter name to add to favorites: ")
if name in contacts:
favorite_contacts.add(name)
print(f"{name} added to favorites.")
else:
print(f"Contact {name} not found.")
elif choice == "5":
print("\nFavorite Contacts:")
for name in favorite_contacts:
print(name)
elif choice == "6":
print("Thank you for using Contact Manager. Goodbye!")
break
else:
print("Invalid choice. Please try again.")
if __name__ == "__main__":
main()
Este programa demuestra el uso de diccionarios, conjuntos y listas para crear un sistema sencillo de gestión de contactos.
Guarda el archivo (el guardado automático está activado en WebIDE) y ejecútalo usando el siguiente comando en la terminal:
python ~/project/contact_manager.py
Interactúa con el programa añadiendo contactos, eliminándolos, mostrando la lista, añadiendo contactos a favoritos y visualizando tus favoritos. Aquí tienes un ejemplo de interacción:
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 1
Enter name: Alice
Enter phone number: 123-456-7890
Enter email: alice@example.com
Contact Alice added successfully.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 1
Enter name: Bob
Enter phone number: 987-654-3210
Enter email: bob@example.com
Contact Bob added successfully.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 3
Contact List:
Name: Alice, Phone: 123-456-7890, Email: alice@example.com
Name: Bob, Phone: 987-654-3210, Email: bob@example.com
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 4
Enter name to add to favorites: Alice
Alice added to favorites.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 5
Favorite Contacts:
Alice
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 6
Thank you for using Contact Manager. Goodbye!
Este programa ilustra la aplicación práctica de los diccionarios (para almacenar la información de contacto), los conjuntos (para guardar los contactos favoritos) y las listas (utilizadas implícitamente en el sistema de menús).
Resumen
En este laboratorio, has explorado las estructuras de datos fundamentales de Python: listas, tuplas, conjuntos y diccionarios. Has aprendido a crear, manipular y utilizar estas versátiles herramientas, que son esenciales para una gestión eficiente de los datos en la programación con Python.
Comenzaste trabajando con listas, aprendiendo a crear, acceder y modificar colecciones ordenadas de elementos. Luego exploraste las tuplas, comprendiendo su naturaleza inmutable y sus casos de uso para representar colecciones fijas de elementos. A continuación, profundizaste en los conjuntos, descubriendo su capacidad para almacenar elementos únicos y realizar operaciones matemáticas de conjuntos. Finalmente, trabajaste con diccionarios, aprendiendo a gestionar pares clave-valor para la búsqueda y el almacenamiento eficiente de datos.
Para reforzar estos conceptos, creaste un programa práctico de gestión de contactos que utilizaba múltiples estructuras de datos. Este programa demostró cómo diferentes estructuras pueden trabajar juntas en una aplicación del mundo real, mostrando la potencia y flexibilidad de las estructuras de datos de Python.
Estas estructuras forman la columna vertebral de muchos programas en Python, permitiéndote organizar y manipular datos de manera eficiente. A medida que continúes tu camino con Python, verás que estas estructuras son invaluables para resolver una amplia gama de problemas de programación. Recuerda practicar su uso en diversos escenarios para consolidar tu comprensión y volverte más competente en la programación con Python.