[Python-es] [Consulta] csv y diccionario

Sebastián Arancibia ciberseba en gmail.com
Vie Jul 24 17:27:26 EDT 2020


Primero, creo pertinente aclarar conceptos. Sería bueno que nos dijeras en
que otros lenguajes te manejas o tienes experiencia para hacer un símil.

Python tiene 4 tipos de estructuras de datos. Listas, conjuntos (sets),
tuplas y diccionarios. Las listas son, como dice su nombre, un listado de
objetos (que pueden ser enteros, strings, otras listas, etc) y que permiten
operaciones entre si. Los conjuntos son similar con la diferencia que el
conjunto no acepta elementos repetidos, y de que aceptan operaciones
típicas de conjuntos como unión, intercepción o diferencia. Las tuplas son
similares a las listas, con la diferencia de que son *inmutables* (o sea,
no puedes cambiarlas una vez creadas). Y, finalmente, tenemos los
diccionarios, que son una estructura que guarda pares de clave-valor, y que
también pueden almacenar como valor cualquier tipo de dato (otros
diccionarios, listas, etc).

Hice la salvedad de diferenciar las estructuras de dato, porque, como
siempre, esto incide en la decisión de qué usar, y eso simplemente lo ves
dependiendo de lo que necesites. Para algunos casos conviene listados, para
otros conjuntos, para otros tuplas y para otros diccionarios. Es cierto que
tal vez un cierto problema lo puedes enfocar de varias formas pero ahí el
rendimiento entra en juego. No es lo mismo procesar unos cientos datos que
millones de datos... y un desarrollo bien optimizado en Python hace
muchísimo la diferencia en rendimiento. Esto se nota sobre todo si después
despliegas tus desarrollos (ya sea en la nube, en un servidor, etc).

Ahora, ¿por qué los diccionarios son muy buenos? Pues porque es una
estructura de dato muy versátil, te permite buscar por keys, anidar
objetos, filtrar, etc. Además es muy similar a operar un JSON (sin serlo),
entonces es mucho más natural a la hora de trabajar datos versus una
lista/tupla. Esto es muy útil si trabajas haciendo microservicios en Python
por ejemplo, ya que te hace sencillísimo mapear inputs/outputs y
trabajarlos. Es importante si la aclaración de que *no es lo mismo que JSON*,
hay muchas personas que he conocido que piensan erróneamente esto último
cuando recién se están introduciendo en Python y después se frustran cuando
notan que sus desarrollos no devuelven respuestas esperadas (o en el
formato esperado).

Ahora, si quieres ver rendimiento o complejidad algorítmica, este link (
https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/DataStructures.html)
puede darte más luces. Ojo, repito que no es que una estructura de datos
sea mejor que otra, depende mucho de la necesidad, caso de uso o
requerimiento en específico.

Saludos.

On Fri, Jul 24, 2020 at 2:46 PM Lemarchand Barker <lemarchand8679 en gmail.com>
wrote:

> Hola, esta vez les pregunto como bien me habían comentado antes, a la
> hora de trabajar con un archivo csv que use diccionario. Pero hay
> algún motivo en particular o en especial por el cuál se hace esto? Es
> por cuestión de rendimiento a nivel sistema o porque ofrece una forma
> más fácil de trabajar y manipular la información?
> Por lo que leí es mejor usar el diccionario en vez de manejar la una
> lista individual de cadenas. Lo entiendo pero hay algún plus o algo
> que favorezca el uso del diccionario?
> Gracias, saludos
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200724/28a9d5d8/attachment.html>


Más información sobre la lista de distribución Python-es