[PIPython] Ordinare elementi di una lista

Arianna Microchip microchip79
Ven 14 Gen 2005 20:26:45 CET


>Allora, sia 'a' la nostra lista di occorrenze e sia Python 2.4 o
>superiore il tuo ambiente, quanto segue fa al caso tuo:
>
>>>> a=[1,7,2,0,6,3,0,4]
>>>> res=list(reversed(sorted((x, i) for i,x in enumerate(a) if x!= 0)))
>>>> print '\n'.join('%d: %d' % (x[1], x[0]) for x in res)
>1: 7
>4: 6
>7: 4
>5: 3
>2: 2
>0: 1
>>>> 
>
>La  riga  interessante  è quella in cui viene generato res che risulta
>essere  la  lista in ordine decrescente delle coppie tali che il primo
>elemento  è  un  elemento di 'a' ed il secondo elemento è la posizione
>dell'elemento.
>...si fa prima a scriverlo in Python! ;)
>
>
>Saluti,
> Matteo
>-- 
> mailto:matteo.giacomazzi a email.it
> Y!M matteo_giacomazzi


Ringrazio tutti!
Questo è il metodo più breve e davvero ben fatto!
Grazie Matteo!

Ora sto provando a fare un'altra cosetta....
Decido di inserire X numeri in una lista. Inserisco i numeri ad uno ad uno e se ne metto uno che ho già inserito, python me lo segnala e mi chiede un altro numero in modo che i numeri finali siano X come avevo scelto.
Per esempio, se scelgo di inserire 15 numeri, se come secondo numero avevo messo il 4, e come decimo rimetto il 4, lui me lo segnala e attende ancora il decimo numero!

Io per  inserire i numeri in lista ho fatto così:

numeri = input('Quanti numeri vuoi inserire? ')
for n in range(numeri):
    valore = input('Inserisci il numero ' + str(n+1) + ': ')
    listanumeri.append(valore)

dovrei forse mettere un IF dopo la lettura della variabile valore per controllare che non sia già presente nella lsita, ma.... se per al seconda volta metto un numero già inserito come faccio???

Grazie ancora


More information about the Python mailing list