[Python-es] [Consulta] Ordenar elementos de una lista

Ricardo Cárdenes ricardo.cardenes en gmail.com
Lun Jul 20 17:08:24 EDT 2020


De nuevo, depende de lo que quieras mostrar, de forma más detallada. Dices:

Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no
lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese
país que ingresé está almacenado en el csv


Tendrías que clarificar lo que estás imprimiendo. Por ejemplo:

   - ¿Sólo quieres saber si se incluyen datos del país en cuestión, pero no
   imprimirlos? ¡Bueno, entonces no los imprimas! Imprime sólo "sí, está", o
   cualquier otra cosa que tú quieras. Sólo una vez. Entiendo que estás
   iterando sobre la lista de datos e imprimiendo "Argentina" cada vez que
   aparece el código. En lugar de eso, podrías detener la búsqueda (con un
   break, probablemente) cuando encuentres la primera coincidencia.
   - ¿Quieres mostrar los datos, pero no repetir el código en cada fila?
   ¡No lo hagas! Muestra sólo las columnas que te interesan.

Para la primera, por ejemplo, podrías incluso mantener una lista separada
(o casi mejor, un set) con los códigos de los países que aparecen. Entonces
comprobar si el país está incluido o no es trivial.

O podrías combinar ambos puntos: usar un *diccionario*, indizado por el
código del país, cuyos valores fueran listas de los datos de los
respectivos países (un par valor-lista para cada código de país). Y como el
dato del país ya está en el índice, no tienes que repetirlo en los datos
almacenados. Eso te permitiría tener acceso inmediato a los datos
exclusivos a un país.

Claro que esto último sólo es útil si todas tus búsquedas van indizadas por
país.

No sé, como te digo, nos vas dando información poquito a poquito de lo que
quieres hacer y eso deja demasiadas cosas abiertas.

On Mon, Jul 20, 2020 at 10:07 AM lemarchand8679 <lemarchand8679 en gmail.com>
wrote:

> Gracias Ricardi, ahí voy.
> Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada
> fila contiene información distinta, por lo que no hay datos repetidos.
> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que
> no lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese
> país que ingresé está almacenado en el csv. No quiero modificar, borrar o
> añadir algo, sólo saber si un país está o no en la lista y en caso de que
> así sea, que lo muestre pero no todas las veces que se repite.
> Espero haberme explicado mejor, gracias
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
> -------- Mensaje original --------
> De: Ricardo Cárdenes <ricardo.cardenes en gmail.com>
> Fecha: 20/7/20 16:59 (GMT-03:00)
> A: La lista de python en castellano <python-es en python.org>
> Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
>
> No hay una respuesta única. Eso depende de tu problema en concreto.
>
> Por ejemplo, dices que el número de área está repetido... ¿Significa eso
> que el resto de valores también están repetidos? Es decir, ¿la fila con los
> datos de Argentina aparece 29 veces? En ese caso entiendo que lo que
> quieres es *eliminar duplicados*. Eso es trivial: simplemente, mantén
> algún tipo de registro de los datos que vas leyendo del CSV (un set
> almacenando los códigos es perfecto para esto) y no añadas a la lista las
> filas que ya "viste".
>
> Si lo que quieres es consolidar datos (cada fila con el mismo código tiene
> datos diferentes, que quieres sumar, o hacer media, o...) entonces la
> respuesta va a ser diferente.
>
> Necesitas explicar de forma clara qué es lo que pretendes y entonces se te
> puede dar una respuesta.
>
> On Mon, Jul 20, 2020 at 9:36 AM Lemarchand Barker <
> lemarchand8679 en gmail.com> wrote:
>
>> Hola, esta vez mi pregunta es más simple, sigo jugando el archivo csv
>> y para seguir practicando, lo que estoy haciendo es lo siguiente.
>> Definí una lista la cual la dejé vacía, y a partir del csv guardé en
>> la lista 3 valores: Area, Population y Value. Le cambié los nombres
>> porque eran muy largos y para tratar de evitar errores en la búsqueda
>> luego.
>> Una vez añadidos estos 3 datos a la lista, los imprimía por ejemplo
>> los valores contenidos en Area y vi que los datos estaban repetidos.
>> Por ejemplo, en mi caso soy de Argentina y el código que le
>> corresponde a mi país es el 32 y mediante el for, recorrí la lista y
>> vi que ese número se repite 29 veces y así con la mayoría de los
>> países del listado. Ahora mi pregunta es la siguiente, hay alguna
>> forma de listar los nombres de los países pero que figuren solo una
>> vez y no las 29 o las x cantidad de veces que figuren en el listado?
>> Porque como dije antes, Argentina tiene el número 32 pero si imprimo
>> el listado me aparece las 29 veces que figura en el csv.
>> Mi idea es por ejemplo imprimir el listado de países, pero sin la
>> repetición.
>> Muchas gracias, saludos
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> _______________________________________________
> 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/20200720/85c3d30c/attachment.html>


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