PyQuiz 45 – extend vs append (listas) en Python

El reto
a = [1, 2, 3]
a.extend([4, 5])
print(len(a))¿Cuál es el resultado?
- a) 5
- b) 4
- c) Error
Piensa tu respuesta antes de seguir leyendo…
Concepto: extend vs append (listas)
El método extend(iterable) añade cada elemento del iterable al final de la lista, uno por uno. Es la forma de «fusionar» dos listas. En cambio, append(elemento) añade el iterable completo como un único elemento.
La diferencia es crucial: a.extend([4, 5]) añade dos elementos individuales (el 4 y el 5), incrementando la longitud en 2. Si en cambio usaras a.append([4, 5]), añadirías la lista [4, 5] como un solo elemento, y la longitud aumentaría solo en 1.
a = [1, 2, 3]
a.extend([4, 5])
print(a) # [1, 2, 3, 4, 5]
print(len(a)) # 5
b = [1, 2, 3]
b.append([4, 5])
print(b) # [1, 2, 3, [4, 5]]
print(len(b)) # 4 — el [4,5] cuenta como UN elementoPaso a paso
a = [1, 2, 3]— Lista inicial con 3 elementos.len(a) = 3.a.extend([4, 5])—extenditera sobre[4, 5]y añade cada elemento individualmente: primero4, luego5.- Resultado:
a = [1, 2, 3, 4, 5]. Se han añadido 2 elementos. len(a)— Cuenta los elementos de la lista:1, 2, 3, 4, 5→ 5 elementos.print(len(a))— Se imprime5.
📥 Llévate el cheatsheet de Python (gratis)
PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.
Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.
Solución
Respuesta correcta: A) 5
extend() añade cada elemento individualmente. La lista queda [1, 2, 3, 4, 5] con 5 elementos.
Sabías que…
extend acepta cualquier iterable, no solo listas. También puedes usar el operador += o la concatenación con +, aunque con diferencias importantes:
a = [1, 2, 3]
# extend modifica la lista original (in-place)
a.extend((4, 5)) # acepta tuplas
a.extend('ab') # acepta strings: añade 'a' y 'b'
print(a) # [1, 2, 3, 4, 5, 'a', 'b']
# += es equivalente a extend
b = [1, 2, 3]
b += [4, 5] # modifica b in-place
print(b) # [1, 2, 3, 4, 5]
# + crea una nueva lista (NO modifica)
c = [1, 2, 3]
d = c + [4, 5] # c no cambia
print(c) # [1, 2, 3] — sin modificar
print(d) # [1, 2, 3, 4, 5]Prueba tú mismo
Si tienes lista = [1, 2] y ejecutas lista.append([3, 4]) seguido de lista.extend([5, 6]), ¿cuántos elementos tiene lista y cuál es su contenido exacto?
Más PyQuizzes en elpythonista.com/pyquizzes
Tutorial relacionado: Listas en Python
¿Quieres aprender Python en orden, no a saltos?
Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.
37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía
