Skip to content
Este artículo tiene fines educativos. Te animamos a verificar con fuentes oficiales.

¿Por qué en Python usamos listas y no arrays como en C++?

@JorgeTech · · answered
#programación#python#bachillerato#COMIPEMS#arrays

Oigan, alguien me puede explicar la diferencia entre arrays y listas en Python? No lo entiendo ni con memes 😭. En mi clase de programación nos pidieron hacer un programa que calcule el costo de un viaje entre CDMX, Guadalajara y Monterrey usando listas, pero no sé por qué no podemos usar arrays como en C++. ¿Alguien me salva? Necesito esto para el proyecto de COMIPEMS.

@ProfNayeli teacher ·

¡Buena pregunta, @JorgeTech! Vamos por partes. En Python no hay arrays nativos como en C++, pero sí tenemos listas. Las listas son como cajas donde guardas cosas de diferentes tipos, mientras que un array (en otros lenguajes) es como una fila de cajitas del mismo tamaño. ¿Quieres que te muestre un ejemplo con el viaje que mencionas?

@ElRuso expert ·
@ProfNayeli a dit: ¡Buena pregunta, @JorgeTech! Vamos por partes...

Casi, @ProfNayeli, pero falta un detalle importante: en Python las listas son dinámicas (pueden crecer o reducirse), mientras que los arrays en otros lenguajes suelen tener tamaño fijo. Además, las listas en Python pueden contener tipos mixtos, pero los arrays no. ¿Quieres que profundicemos en el rendimiento?

@ProfNayeli teacher ·
@ElRuso a dit: Casi, @ProfNayeli, pero falta un detalle importante...

@ElRuso, tienes razón. Vamos a aclarar esto con un ejemplo práctico usando el viaje entre ciudades. ¿Te parece si usamos una lista para guardar los costos y luego calculamos el total?

@ChenteDev expert ·
@ProfNayeli a dit: @ElRuso, tienes razón. Vamos a aclarar esto...

¡Perfecto! Aquí va el código completo para calcular el costo del viaje CDMX-Guadalajara-Monterrey: costos = [500, 350, 400]; total = sum(costos); print(f"Total: ${total} MXN"). Así practicas con listas y hasta usas f-strings para el formato.

@JorgeTech student ·
@ChenteDev a dit: ¡Perfecto! Aquí va el código completo...

¡Gracias! Pero ¿cómo sé cuándo usar lista y cuándo array? ¿Hay alguna regla sencilla?

@ElRuso expert ·
@JorgeTech a dit: ¡Gracias! Pero ¿cómo sé cuándo usar lista...

Regla de oro: usa listas cuando necesites flexibilidad (tipos mixtos, tamaño variable). Usa arrays (con numpy) cuando trabajes con datos numéricos homogéneos y necesites velocidad. Por ejemplo, para procesar miles de temperaturas diarias. ¿Quieres que te muestre un ejemplo con numpy?

@ProfNayeli teacher ·
@ElRuso a dit: Regla de oro: usa listas cuando necesites flexibilidad...

@ElRuso, casi. En Python puro no hay arrays nativos, pero con el módulo array sí puedes crear arrays homogéneos. Sin embargo, para la mayoría de los casos, las listas son suficientes. Retomemos: ¿qué prefieren, un ejemplo con array o con numpy?

@ChenteDev expert ·
@ProfNayeli a dit: @ElRuso, casi. En Python puro no hay arrays nativos...

¡Yo propongo un ejemplo con listas porque es lo que pide el ejercicio del COMIPEMS! Imagina que guardas las calificaciones de tus exámenes: calificaciones = [8.5, 9.0, 7.8, 10.0]. Luego calculas el promedio con sum(calificaciones)/len(calificaciones). ¿Ves qué fácil?

@JorgeTech student ·
@ChenteDev a dit: ¡Yo propongo un ejemplo con listas porque es lo que pide...

¡Ya entendí! Las listas son como mi mochila: le puedo echar lo que sea y cambiarlo cuando quiera. Los arrays son como una caja de huevos: solo caben huevos y siempre son 12. ¿Correcto?

@LupitaCode student ·
@JorgeTech a dit: ¡Ya entendí! Las listas son como mi mochila...

Pero @JorgeTech, ¿y si necesito guardar muchos números iguales? Por ejemplo, las temperaturas de cada hora en un día. ¿Sigo usando lista o mejor array?

@ElRuso expert ·
@LupitaCode a dit: Pero @JorgeTech, ¿y si necesito guardar muchos números iguales?

¡Buena pregunta, @LupitaCode! Para 24 temperaturas iguales (números decimales), un array de numpy sería más eficiente porque ocupa menos memoria y los cálculos son más rápidos. Pero si son solo 24 datos, una lista también funciona. ¿Quieres que te muestre el código con numpy?

@ProfNayeli teacher ·
@ElRuso a dit: ¡Buena pregunta, @LupitaCode! Para 24 temperaturas iguales...

@ElRuso, recuerda que para usar numpy hay que instalarlo primero con pip install numpy. Pero para el COMIPEMS, con listas es suficiente. Retomemos el ejemplo del viaje: ¿quieren que escribamos juntos el código paso a paso?

@ChenteDev expert ·
@ProfNayeli a dit: @ElRuso, recuerda que para usar numpy...

¡Sí! Vamos a hacerlo. Primero creamos la lista con los costos: viaje_cdmx_guada_monterrey = [500, 350, 400]. Luego sumamos: total = sum(viaje_cdmx_guada_monterrey). Finalmente imprimimos: print(f"Gasto total: ${total} MXN"). ¿Listo?

@JorgeTech student ·
@ChenteDev a dit: ¡Sí! Vamos a hacerlo. Primero creamos la lista...

¡Funcionó! Pero ¿y si quiero agregar el costo del taxi en Monterrey? ¿Cómo lo hago?

@ProfNayeli teacher · Mejor respuesta
@JorgeTech a dit: ¡Funcionó! Pero ¿y si quiero agregar el costo del taxi...

¡Muy bien, @JorgeTech! Para agregar el costo del taxi, usas el método append(): viaje_cdmx_guada_monterrey.append(120). Así la lista queda [500, 350, 400, 120] y el total se actualiza automáticamente. ¿Ves qué fácil es manejar listas?

@LupitaCode student ·
@ProfNayeli a dit: ¡Muy bien, @JorgeTech! Para agregar el costo del taxi...

¿Y si me equivoco y pongo un costo de más? ¿Cómo lo quito?

@ProfNayeli teacher ·
@LupitaCode a dit: ¿Y si me equivoco y pongo un costo de más?

¡Excelente pregunta, @LupitaCode! Para quitar un elemento, usas pop() si sabes el índice o remove() si sabes el valor. Por ejemplo: viaje_cdmx_guada_monterrey.pop(3) quita el cuarto elemento (índice 3). O viaje_cdmx_guada_monterrey.remove(120) quita el 120. ¿Quieres que practiquemos con otro ejemplo?

@ElRuso expert ·
@ProfNayeli a dit: ¡Buena pregunta, @JorgeTech! Vamos por partes...

En Python, los arrays no son nativos porque el lenguaje está diseñado para ser flexible. Las listas pueden guardar cualquier tipo de dato (números, strings, etc.), mientras que los arrays en C++ solo guardan datos del mismo tipo. Para arrays en Python necesitas el módulo array o numpy. ¿Quieres que te enseñe cómo?

@JorgeTech student ·
@ElRuso a dit: En Python, los arrays no son nativos porque...

¡Ah, ya entiendo! Entonces en Python usamos listas para casi todo y arrays solo cuando necesitamos eficiencia con datos del mismo tipo. ¿Correcto?

@ChenteDev expert ·
@ProfNayeli a dit: ¡Buena pregunta, @JorgeTech! Vamos por partes...

¡Exacto! Por ejemplo, si quieres guardar los precios de los productos en la Central de Abasto de la CDMX, una lista es perfecta: [12.50, 8.75, 25.99]. Pero si solo guardas temperaturas diarias (números decimales), un array de numpy sería más eficiente. ¿Necesitas un ejemplo con código?

@JorgeTech student ·
@ProfNayeli a dit: ¡Buena pregunta, @JorgeTech! Vamos por partes...

¡Sí, por favor! Pero explícame también por qué no podemos usar arrays como en C++. En mi clase de informática usamos arrays para todo.

@LupitaCode student ·

Pues yo pensé que array y lista eran lo mismo 🤔. En mi libro de programación dicen que en Python todo es lista. ¿O no?

@BotPy bot ·

¡Yo ya hice el programa! Aquí va el código para calcular el costo del viaje: viaje = [500, 300, 200]; print(sum(viaje)) 😎. Pero no me den like, soy un bot 🤖.

@MamaCode parent ·

¿Y esto sirve para algo en la vida real? Mi hijo está estudiando programación para el COMIPEMS y no veo la utilidad.

@ProfNayeli teacher ·
@MamaCode a dit: ¿Y esto sirve para algo en la vida real?

¡Claro que sí, @MamaCode! Imagina que tu hijo quiere calcular cuánto gastará en un viaje de la CDMX a Cancún en bus. Podría guardar los precios de los boletos, comidas y souvenirs en una lista y sumarlos. Así practica programación y resuelve un problema real.

Fuentes

  1. en.wikipedia.org
  2. www.jstor.org
  3. xlinux.nist.gov
  4. arxiv.org
  5. doi.org
  6. search.worldcat.org
  7. api.semanticscholar.org
  8. web.archive.org
  9. www.chiark.greenend.org.uk
  10. processing.org
  11. www.google.com
  12. scholar.google.com
  13. www.configure-all.com
  14. d-nb.info