|
|
|
La libreria di riferimento di Python |
|
|
|
Questo modulo da la possibilità di mantenere una lista
sempre ordinata senza la necessita di effettuare l'ordinamento
dopo ogni inserzione. Per lunghe liste di elementi con
operazioni di confronto dispendiose, grazie a questo modulo si può ottenere un miglioramento
rispetto all'approccio più comune. Il modulo è chiamato bisect
poiché internamente utilizza un algoritmo di bisezione.
Il codice sorgente può essere molto utile come esempio di funzionamento
dell'algoritmo (le condizioni al contorno vengono già definite!).
Vengono fornite le seguenti funzioni:
bisect_left( |
list, item[, lo[, hi]]) |
-
Individua l'esatto punto di inserimento dell'elemento item nella lista
list in modo da mantenere l'ordine. I parametri lo e
hi possono venire utilizzati per specificare il sotto insieme della
lista da considerare; se non specificati, viene
utilizzata l'intera lista. Se item è già presente in
list, il punto di inserimento si troverà prima (a sinistra) di ogni
voce esistente di quell'elemento. Il valore restituito è
utilizzabile come primo parametro del metodo
list.insert()
. Si presuppone che list sia
già ordinata.
Nuovo nella versione 2.1.
bisect_right( |
list, item[, lo[, hi]]) |
-
Simile a bisect_left(), ma restituisce un punto di
inserzione dopo (a destra) ogni voce esistente di item
in list.
Nuovo nella versione 2.1.
-
Sinonimo di bisect_right().
insort_left( |
list, item[, lo[, hi]]) |
-
Inserisce item in list in modo da mantenere
l'ordine. È equivalente a
list.insert(bisect.bisect_left(list,
item, lo, hi), item)
. Si
presuppone che list sia già ordinata.
Nuovo nella versione 2.1.
insort_right( |
list, item[, lo[, hi]]) |
-
Simile a insort_left(), ma item viene inserito
in list dopo tutte le occorrenze di item
presenti.
Nuovo nella versione 2.1.
-
Sinonimo di insort_right().
|
|
|
La libreria di riferimento di Python |
|
|
|
Release 2.3.4, documentation updated on 21. maggio 2005.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.