¿Eres amante del cine y quieres organizar tus películas como en Netflix? En este tutorial aprenderás cómo crear un sistema básico de gestión de colecciones de películas utilizando listas y diccionarios en Python. Exploraremos cómo usar doble anidación para buscar entre colecciones y películas.
**Requisitos previos
** Paso 1 : Crear la estructura inicial
Nuestra base de datos estará organizada en un diccionario donde las claves serán las colecciones (como géneros o categorías) y los valores serán listas de películas.
netflix = {
"Action": ["Mad Max", "John Wick"],
"Comedy": ["Superbad", "Step Brothers"],
"Drama": ["The Godfather", "Forrest Gump"]
}
print("Initial catalog:")print(netflix)
** Paso 2 : Agregar nuevas colecciones o películas
Si la colección no existe, la creamos y luego añadimos películas.
defadd_collection(catalog, collection):if collection notin catalog:
catalog[collection] = []
print(f"Collection '{collection}' added.")
else:
print(f"The collection '{collection}' already exists.")
add_collection(netflix, "Science Fiction")
defadd_movie(catalog, collection, movie):if collection in catalog:
if movie notin catalog[collection]:
catalog[collection].append(movie)
print(f"'{movie}' added to the collection '{collection}'.")
else:
print(f"'{movie}' is already in the collection '{collection}'.")
else:
print(f"The collection '{collection}' does not exist.")
add_movie(netflix, "Science Fiction", "Blade Runner")
add_movie(netflix, "Action", "Die Hard")
** Paso 3 : Editar colecciones o películas
Renombrar una colección manteniendo sus películas.
defrename_collection(catalog, old_collection, new_collection):
if old_collection in catalog:
catalog[new_collection] = catalog.pop(old_collection)
print(f"Collection '{old_collection}' renamed to '{new_collection}'.")
else:
print(f"The collection '{old_collection}' does not exist.")
defedit_movie(catalog, collection, old_movie, new_movie):
if collection in catalog:
if old_movie in catalog[collection]:
index = catalog[collection].index(old_movie)
catalog[collection][index] = new_movie
print(f"'{old_movie}' renamed to '{new_movie}' in the collection '{collection}'.")
else:
print(f"'{old_movie}' is not in the collection '{collection}'.")
else:
print(f"The collection '{collection}' does not exist.")
rename_collection(netflix, "Science Fiction", "Sci-Fi")edit_movie(netflix, "Action", "Die Hard", "Duro de Matar")
** Paso 4 : Buscar entre colecciones y películas
Buscar películas por colección
defsearch_by_collection(catalog, collection):
if collection in catalog:
return catalog[collection]
else:
print(f"The collection '{collection}' does not exist.")
return []
print("Movies in 'Action':", search_by_collection(netflix, "Action"))
defsearch_movie(catalog, movie):
results = []
for collection, movies in catalog.items():
if movie in movies:
results.append(collection)
return results
print("Collections containing 'Blade Runner':", search_movie(netflix, "Blade Runner"))
** Paso 5 : Eliminar colecciones o películas
defdelete_movie(catalog, collection, movie):
if collection in catalog:
if movie in catalog[collection]:
catalog[collection].remove(movie)
print(f"'{movie}' removed from the collection '{collection}'.")
else:
print(f"'{movie}' is not in the collection '{collection}'.")
else:
print(f"The collection '{collection}' does not exist.")
defdelete_collection(catalog, collection):
if collection in catalog:
del catalog[collection]
print(f"Collection '{collection}' deleted.")
else:
print(f"The collection '{collection}' does not exist.")
delete_movie(netflix, "Action", "John Wick")delete_collection(netflix, "Drama")