[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