Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Utilidad del continue en bucles

Siento que me compliqué mucho, el ver diccionarios dentro de una lista me hizo entrar un poco en la zona de peligro jajajaja por asi decirlo. me gustaria que revisaran mi codigo y me comenten que le puedo mejorar, como se podran dar cuenta me apoye de las listas y los bucles.
posdata: le agregue un par de diccionarios y al parecer sigue funcionando
!Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad
libros = [
{"nombre": "1984", "stock": 5},
{"nombre": "Dom Casmurro", "stock": 0},
{"nombre": "El Principito", "stock": 3},
{"nombre": "El Hobbit", "stock": 0},
{"nombre": "Orgullo y Prejuicio", "stock": 2},
{"nombre": "Crimen y Castigo", "stock": 0},
{"nombre": "La Divina Comedia", "stock": 0},
{"nombre": "El Perfume", "stock": 15}
]
nombres = [] #creamos una lista vacia

for diccionarios in libros[:]: #buscamos los diccionarios con clave = 'stock' y valor = 0 para eliminarlos
if diccionarios["stock"] == 0: #condicional del diccionario con valor = 0
libros.remove(diccionarios) # eliminar los diccionarios con valor = 0

for diccionarios in libros: #volvemos a crear un bucle de recorrido de los diccionarios
for clave,valor in diccionarios.items(): #buscamos las claves valor de los diccionarios
nombres.append(valor) #creamos una lista en limpio unicamente con los valores

for i in range(0, len(nombres), 2): #recorremos la lista haciendo un step de 2
print(f'Libro disponible: {nombres[i]}') #imprimimos los items

1 respuesta

Hola Fredy,

Entiendo que estás tratando de filtrar los libros que tienen stock disponible y mostrar sus nombres. Tu código funciona, pero se podría simplificar usando continue para ignorar los libros sin stock durante la iteración. Aquí te dejo una versión mejorada:

libros = [
    {"nombre": "1984", "stock": 5},
    {"nombre": "Dom Casmurro", "stock": 0},
    {"nombre": "El Principito", "stock": 3},
    {"nombre": "El Hobbit", "stock": 0},
    {"nombre": "Orgullo y Prejuicio", "stock": 2},
    {"nombre": "Crimen y Castigo", "stock": 0},
    {"nombre": "La Divina Comedia", "stock": 0},
    {"nombre": "El Perfume", "stock": 15}
]

for libro in libros:
    if libro["stock"] == 0:
        continue
    print(f'Libro disponible: {libro["nombre"]}')

En este código, el continue hace que el bucle salte a la siguiente iteración si el stock es 0, evitando así la necesidad de eliminar elementos de la lista original. Esto simplifica el código y lo hace más eficiente.

Espero que esto te ayude a entender mejor el uso de continue en bucles. ¡Espero haber ayudado y buenos estudios!