Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Aggiungere ad insiemi o liste?

G
Gdn98 (11600 points)
5 35 101
in Programmare in python by (11.6k points)
Mi chiedevo se fosse uguale aggiungere un elemento ad un insieme o ad una lista a parità di tempo intendo, oppure se fosse più veloce uno dei due. E se si, é effettivamente tanta la differenza?
584 views

4 Answers

d
davide.scrimieri (2930 points)
4 16 39
by (2.9k points)

Ottima domanda, onestamente non ci avevo pensato ma mi hai dato lo spunto per fare una piccola ricerca.

Alla fin dei conti pare proprio che il Set sia più veloce.

Ho trovato le prime risposte di questo thread di stackoverflow molto utili al riguardo: leggi tutte le prime risposte
T
Tommaso (1480 points)
3 8 22
by (1.5k points)
Ciao, pensa solo che una list è ordinata mentre un set no.
Shunk (6140 points)
6 26 86
by (6.1k points)
Assolutamente il set
Auron (15880 points)
50 126 194
by (15.9k points)
edited by
Dipende sicuramente da ciò che devi fare e dalla situazione in cui drvi usarlo...
L'insieme, come struttura dati, è più veloce dalla lista in linea generale, ma è i dati non sono ordinati, rendendoti impossibile estrarre un elemento partendo da un indice...
La lista, al contrario, è ordinata ma un pochino più lenta...
Quindi, se hai semplicemente bisogno di un contenitore di dati, senzs necessità di vederli "indicizzati" in qualche modo, vai sull'insieme che è più veloce (sempre che non ti serva mantenere le occorrenze, gli insiemi non le ammettono)... Altrimenti scegli la lista :D
T
Tommaso (1480 points)
3 8 22
by (1.5k points)
(sempre che non ti serva mantenere le occorrenze, gli insiemi non le ammetto)... penso che Auron si riferisse al fatto che i set non ammettono duplicati (pensali in tutto e per tutto ad insiemi, un elemento dell'insieme è tale in quanto individuo unico). Però non pensare solo alla velocità pura di lettura/inserimento/modifica, è importante anche la manipolazione di strutture dati dello stesso genere: ad esempio mi riferisco al problema classico di verificare dati che sono presenti in un insieme e non nell'altro, con la differenza tra set l'operazione è molto più veloce che utilizzare liste.
Auron (15880 points)
50 126 194
by (15.9k points)
edited by
Eh beh si, mi riferivo a quello, ma è esattamente quello che c'è scritto :D
Buona l'osservazione sulle operazioni tra set ;)