[Python] Domanda sui dizionari.

Stefano Dal Pra s.dalpra a gmail.com
Lun 11 Feb 2019 17:22:03 CET


prova a guardare qui:
https://pymotw.com/2/collections/ordereddict.html
Stefano

On Mon, Feb 11, 2019 at 5:19 PM Marco De Paoli <depaolim a gmail.com> wrote:

> ciao Gabriele,
>
> Il giorno lun 11 feb 2019 alle ore 16:38 Gabriele Battaglia <
> iz4apu a libero.it> ha scritto:
>
>> Ciao a tutti.
>> Quanto tempo!
>> Dunque dunque, vediamo chi, fra i sopravvissuti all'influenza, tremenda,
>> di quest'anno, avrà voglia di leggere la mia domanda e darmi una dritta.
>>
>> Siamo nella fase finale di un gioco ed è ora di stampare la classifica
>> dei vittoriosi.
>>
>> Ho un dizionario che ha questa struttura:
>>
>> giocatori= {'nome' : [ punteggio, vittorie, patte, sconfitte ] }
>>
>> Posso pertanto accedere facilmente ai dati dei singoli giocatori, ad
>> esempio per conoscere il numero di vittorie accumulate da Valter
>> interrogherò giocatori['Valter'][1]
>>
>> Il problema sorge quando devo stampare una classifica. L'utente può
>> decidere se la vuole basata sul punteggio piuttosto che sul numero di
>> vittorie, se la vuole ascendente o discendente.
>>
>
> FIELDS = ['nome', 'punteggio', 'vittorie', 'patte', 'sconfitte']
>
> def output(d, field_name, reverse=False):
>     pos = FIELDS.index(field_name)
>     direction = "inversa " if reverse else ""
>     flat = [(n, *v) for n, v in giocatori.items()]
>     print(f"Classifica ordinata {direction}per {field_name}")
>     print("\n".join(["\t".join(map(str, r)) for r in sorted(flat,
> key=lambda r: r[pos], reverse=reverse)]))
>
> giocatori= {
>     'nc' : [1, 50],
>     'nd' : [2, 10],
>     'nb' : [3, 30],
>     'ne' : [4, 20],
>     'na' : [5, 40],
> }
>
> output(giocatori, 'nome')
> output(giocatori, 'vittorie')
> output(giocatori, 'vittorie', True)
>
> Si avvicina a quello che avevi in mente?
>
> Marco
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20190211/da594ca3/attachment.html>


Maggiori informazioni sulla lista Python