[pyar] Analizar cvs, creo que es una tontería...

Wilebaldo Santana wisahe en gmail.com
Dom Jul 10 16:27:14 ART 2011


Wow, interesante!!!

¿Cómo podría, entonces, acceder al nombre de Carlos?

>>> print listas['1']
['GABRIEL', 'VICTOR', 'CARLOS']

Se que no puedo hacer:
>>> print listas['1':'2']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type


Perdón por la pregunta, pero todavía no entiendo los diccionarios.

Saludos!


El 10 de julio de 2011 13:08, gustavo c <p8queen en gmail.com> escribió:

> On Sun, Jul 10, 2011 at 10:52:41AM -0300, Tordek wrote:
> > On 10/07/11 10:31, Gabriel Rech wrote:
> > >Hola a todos,
> > >
> > >Bueno, les escribo porque tengo una duda con un archivo csv (más
> > >bien está separado por tabulaciones) que quiero analizar. Creo que
> > >mi problema es principalmente que soy novato y desconozco algunos
> > >trucos de iteración. Bueno, vamos al problema.
> > >
> > >Tengo un archivo de texto con la siguiente info
> >
> > [...]
> >
> > >Básicamente lo que quiero hacer es crear una lista para cada número
> > >(primera columna), que contenga todos los nombres que coinciden con
> > >este número, es decir:
> >
> > Si las listas pueden no ser contiguas, el archivo no es demasiado
> > grande, y el orden no es (muy) importante, podés hacerlo así:
> >
> >
> > #!/usr/bin/python
> > import csv
> > import collections
> >
> > f = open(str("archivo.txt"), "r")
> > f_read = csv.reader(f, delimiter="\t")
> >
> > listas = collections.defaultdict(list)
> > for num, nombre in f_read:
> >     listas[num].append(nombre)
> >
> > print listas
> >
> >
> > defaultdict es un tipo de diccionario que, cuando no encuentra una
> > cierta clave, te permite pasarle una función para que la cree. En
> > este caso hacemos que si no encuentra un número, cree una lista
> > vacía.
> >
> > en el bucle podés ahorrate lo de
> > >      num_id = row[0]
> > >      nomb_id = row[1]
> >
> > porque podés pasarle una lista de variables, y python las asigna a
> > todas a la vez.
> >
> > Al final, en listas queda guardado un diccionario, en este caso
> > queda así:
> >
> > {'1': ['GABRIEL', 'VICTOR', 'CARLOS'], '3': ['JUAN'], '2':
> > ['DAMIAN', 'MARTIN'], '4': ['JOSE', 'PEDRO']}
> >
> >
>
> +1
>
> --
> Gustavo C [mutt]
> twitter: @fromgus
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110710/39832472/attachment.html>


More information about the pyar mailing list