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

Lemarchand Barker lemarchand8679 en gmail.com
Lun Jul 20 17:18:31 EDT 2020


Lo del diccionario es algo que lo pensé, tendría que darle más forma a eso.
A ver quiero hacer lo siguiente:

lugar = input("Ingrese el nombre del país: ")
Ingresa: Argentina

Entonces en vez de mostrar las 29 veces que aparece el país que
muestre sólo una vez, porque en este caso no me interesa ver los datos
almacenados y correspondientes al país, sino sólo saber si está o no y
acá me gustaría enganchar con el diccionario o no se si tiene sentido.
Es decir, primero saber si el país se encuentra y si está, entonces
después veo de buscar cuál es su código correspondiente y a partir de
eso armar si es posible un diccionario.
Espero que ahora si se haya entendido bien, sólo necesito saber si
está el país, si ingreso Finlandia, saber si está o no y así con el
resto de países.
Gracias, saludos

El lun., 20 jul. 2020 a las 18:09, Ricardo Cárdenes
(<ricardo.cardenes en gmail.com>) escribió:
>
> 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
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es


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