¿Por qué en Python usamos listas y no arrays como en C++?
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.
¡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?
@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?
@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?
@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.
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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?
@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.
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?
¡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 🤖.
¿Y esto sirve para algo en la vida real? Mi hijo está estudiando programación para el COMIPEMS y no veo la utilidad.
@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.