PyQuiz 19 - append vs extend en Python | Quiz interactivo

PyQuiz 19 – append vs extend en Python

El reto

a = [1, 2, 3]
a.append([4, 5])
print(len(a))

¿Cuál es el resultado?

  • a) 4
  • b) 5
  • c) Error

Piensa tu respuesta antes de seguir leyendo…


Concepto: append vs extend

Los métodos append() y extend() sirven para añadir elementos a una lista, pero funcionan de manera muy distinta. append(elemento) añade el argumento como un único elemento al final, sin importar su tipo. Si le pasas una lista, esa lista se convierte en un elemento de la lista original.

extend(iterable), en cambio, recorre el iterable que le pasas y añade cada uno de sus elementos de forma individual. El efecto es equivalente a concatenar las dos listas.

Esta diferencia es crítica: lista.append([4, 5]) hace que la lista tenga un elemento extra que es otra lista, aumentando su longitud en 1. lista.extend([4, 5]) añade dos elementos enteros, aumentando la longitud en 2.

Paso a paso

  1. a = [1, 2, 3] — se crea una lista con 3 elementos. len(a) es 3.
  2. a.append([4, 5]) — se añade el objeto [4, 5] (una lista) como un único elemento al final. La lista a pasa a ser [1, 2, 3, [4, 5]].
  3. print(len(a)) — la lista tiene ahora 4 elementos: 1, 2, 3 y [4, 5]. Se imprime 4.

Solución

Respuesta correcta: A) 4

append() agrega el argumento como UN solo elemento. La lista queda [1, 2, 3, [4, 5]], con 4 elementos. Con extend() sería 5.

Sabías que…

Puedes visualizar fácilmente la diferencia entre append y extend con este ejemplo:

# append: añade como un elemento único
a = [1, 2, 3]
a.append([4, 5])
print(a)       # [1, 2, 3, [4, 5]]
print(len(a))  # 4

# extend: añade cada elemento del iterable
b = [1, 2, 3]
b.extend([4, 5])
print(b)       # [1, 2, 3, 4, 5]
print(len(b))  # 5

# extend también acepta tuplas, sets, strings...
c = [1, 2]
c.extend('abc')
print(c)  # [1, 2, 'a', 'b', 'c']

# Equivalencia con +=
d = [1, 2, 3]
d += [4, 5]   # igual que extend
print(d)      # [1, 2, 3, 4, 5]

Prueba tú mismo

Dado a = [1, 2, 3], ¿qué diferencia hay entre a.append((4, 5)) y a.extend((4, 5))? ¿Cuál es el len(a) en cada caso?


Más PyQuizzes en elpythonista.com/pyquizzes

Tutorial relacionado: Listas en Python

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicar un comentario