Cargando...

Numerar elementos y emparejar dos listas

zip junta el primer elemento de cada lista y luego el segundo, y se detiene cuando la lista corta se acaba. enumerate pone un número al lado de cada nombre. Sin otro comienzo, ese número es 0. for recorría una sola fila ya hecha. break y continue no numeran ni emparejan. Aquí el bucle no se corta: recibe un número, o un par.

names guarda lida y después guest. enumerate(names) da, en cada vuelta, un número y el nombre. El primer número es 0, porque no pediste otro inicio. print escribe los dos en la misma línea.

Numerar cada nombre desde 0

python
names = ["lida", "guest"]
for number, name in enumerate(names):
    print(number, name)

Ves 0 lida, luego 1 guest. El 0 y el 1 no quedan guardados dentro de names. names sigue siendo dos cadenas. El número vive solo esa vuelta.

Empieza la cuenta en 1

Pasa 1 como segundo argumento. enumerate(names, 1) escribe 1 lida, luego 2 guest. El orden de los nombres no se mueve. Solo se mueve la cuenta. Quita el segundo argumento y vuelves a 0.

zip toma dos listas y un elemento de cada una, en el mismo orden. El primer nombre es lida y la primera bebida es water. La segunda vuelta es guest con tea. No hay número, salvo que llames también a enumerate. Este programa no lo llama.

Emparejar cada nombre con una bebida

python
names = ["lida", "guest"]
drinks = ["water", "tea"]
for name, drink in zip(names, drinks):
    print(name, drink)

Ves lida water, luego guest tea. El par sigue el orden de la lista, no el sentido del nombre. Cambia las bebidas y cambian los pares.

La lista más corta termina el bucle

Deja en drinks solo water. zip empieza por el frente de las dos listas, así que la primera vuelta es lida con water. No hay segunda bebida. zip no inventa una ni da un error. guest no se visita, y el bucle termina.

Parar cuando se acaba la bebida

python
names = ["lida", "guest"]
drinks = ["water"]
for name, drink in zip(names, drinks):
    print(name, drink)

La única línea es lida water. guest sigue dentro de names. No había bebida a su lado, así que este bucle no llegó a ese nombre.

Cuatro llamadas, y qué escribe cada una. Las dos filas de enumerate solo cambian en el inicio. Las dos de zip solo cambian en el largo de drinks.

📊 Qué escribe cada llamada

Llamada Lo que ves
enumerate(names) 0 con lida, luego 1 con guest
enumerate(names, 1) 1 con lida, luego 2 con guest
zip, drinks es water luego tea lida con water, luego guest con tea
zip, drinks solo tiene water lida con water, luego el bucle termina

La página siguiente trata de una función: un trabajo con nombre, que puedes llamar después. No numera una lista ni empareja dos listas.

Calcúlalo antes de ejecutarlo

  1. names es lida, luego guest. ¿Qué líneas escribe enumerate(names)?
  2. Pasas el inicio 1. ¿Cuál es la primera línea?
  3. drinks es water, luego tea. ¿Qué escribe zip en segundo lugar?
  4. drinks solo tiene water. ¿Se escribe guest? ¿El programa se detiene con un error?

Donde los pares se tuercen

  • Esperar el inicio en 1 cuando no pasaste ningún inicio
  • Creer que el número se guarda de vuelta en la lista
  • Emparejar lida con tea porque tea parece encajar
  • Esperar a guest cuando drinks tiene un solo elemento
  • Tomar la parada temprana por un fallo

enumerate recorre una lista y añade un número. Sin inicio, el número es 0 y luego 1: 0 con lida, luego 1 con guest. Si pasas 1, los mismos nombres salen como 1 y 2.
zip recorre dos listas a la par. Con la misma longitud obtienes lida con water, luego guest con tea. Si drinks solo tiene water, se escribe lida water y el bucle termina. guest se queda en names, sin visita.
La página siguiente pone nombre a un trabajo para que puedas llamarlo.

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
5
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior