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

Do you need help?

passare un argomento o no HW2

giordano_sannino (13650 points)
7 16 81
in HW2 obbligatorio by (13.7k points)
recategorized by

Secondo voi è più efficiente creare un dizionario fuori dalla funzione e passarlo ogni volta oppure crearlo nella funzione(ma cosi si creerebbe ogni volta che la chiamo)?

La funzione viene chiamato ogni turno 4 volte(HW2), vorrei capire in generale quale metodo è migliore dei due, se passare ogni volta un argomento in più(dizionario) o crearlo ogni volta nella funzione?

315 views
closed

5 Answers

Best answer
R
Rebs99 (2290 points)
4 4 10
by (2.3k points)
selected by
Se per 'creare un dizionario fuori dalla funzione' intendi dire, crearlo fuori da un'eventuale funzione ausiliaria per il calcolo dei punti, decisamente sì.
Se te lo crei all'interno della tua funzione principale, verrà costruito solo una volta ad inizio esercizio e sarà sfruttato poi dall'ausiliaria. Altrimenti, ogni volta che richiami l'ausiliaria per il calcolo dei punti, perdi tempo a creare lo stesso dizionario da capo, più volte e più volte. Decisamente un passaggio inutile
Rametto (4910 points)
3 4 25
by (4.9k points)
Sicuramente crearlo dentro ti aiuta a ridurre il tempo di esecuzione, crealo all'inizio della funzione corrente
Marco Freddi (1420 points)
1 2 16
by (1.4k points)
Passarlo ogni volta sicuramente impegna un pochino il programma ogni volta, crearlo dentro potrebbe essere meglio se magari il programma mantiene una sorta di memoria di quel dizionario dopo averlo creato per la prima volta.
Comunque ti consiglio di provare nei due modi e misurare il tempo di esecuzione (con pytest, libreria time o altro), così sei sicuro.
gusgus (1730 points)
5 8 31
by (1.7k points)
crearlo all'interno è un grande spreco di risorse, a meno che non ti serva resettato ogni volta. Sia per una pulizia del codice ma anche per logica ti consiglio di tenerlo fuori. Anche perché crearlo all'interno più e più volte prenderebbe molto più tempo. (nel caso dei dizionari e liste il tempo di creazione è più lento della chiamata come parametro perché si tratta di più valori)
C
ChristianSt (1790 points)
3 9 25
by (1.8k points)
ho testato personalmente e effettivamente crearlo ogni volta dentro la funzione aumenta di molto il tempo, lo so, non e' una soluzione elegante, ma se vuoi abbassare il tempo, passalo come argomento alla funzione