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

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


Bueno, entonces puedes seguir las indicaciones que te dejé para ese caso
concreto (o algo similar).

On Mon, Jul 20, 2020 at 11:19 AM Lemarchand Barker <lemarchand8679 en gmail.com>
wrote:

> 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
> _______________________________________________
> 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/e445acb2/attachment.html>


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