[Python] Dizionari

Carlo C8E Miron carlo.miron a gmail.com
Gio 9 Ott 2008 20:52:56 CEST


Ciao,

2008/10/9 Oberdan Albertoni <obe a digicolor.net>:
> Ciao,
>
> una domanda nella tua soluzione
>
> for i in sorted(ElencoDomini.items(), key=lambda x:int(x[1]), reverse=True):
>
>
> La funzione sorted ordina una lista di tuple cioe'  ElencoDomini.items().
> La lista viene ordinata tramite la funzione  key=lambda x:int(x[1])  e
> qui mi perdo.
> x e' la tupla  giusto ?
> x[1] e' il nostro contatore dei domini nel dizionario iniziale giusto ?
> ma che confronto e' int(x[1]) ?

Guarda, forse cosi` e` piu` leggibile::

>>> DizionarioUno = {'dominio1.com':'3', 'dominio2.com':'44', 'dominio3.com':'5'}
>>> def by_number((dom, num)): return int(num)
...
>>> for i in sorted(DizionarioUno.items(), key=by_number, reverse=True): print "%-20s %3s" % i
...
dominio2.com          44
dominio3.com           5
dominio1.com           3
>>>

Ah, apropos, questo mi sembra un ottimo usecase per le namedtuple, vedi
<http://stacktrace.it/articoli/2008/05/gestione-dei-record-python-1/>

> Mille grazie da Obe.

yw,
(c)
-- 
Carlo C8E Miron
Open Source Solution Architect

<http://www.linkedin.com/in/carlomiron>
<http://pycon.it/> <http://stacktrace.it/> <http://pydinner.org/>


Maggiori informazioni sulla lista Python