Aggiungo molti elementi a un elenco di elenchi. Se l'elenco di elenchi in cui il mio elemento deve essere salvato, non esiste ancora, lo gestisco rilevando un'eccezione e aggiungendo un nuovo elenco al mio elenco di elenchi.
La ragione per cui faccio questo invece di controllare ogni volta, se la lista specificata esiste già, è che aggiungo migliaia di elementi, a pochi elenchi. Quindi il caso, che la lista non è stata ancora creata, si verifica solo poche volte. Quindi penso che sia più veloce sollevare un'eccezione e gestirla, invece di controllare le lunghezze delle liste migliaia di volte.
Ecco un esempio di cosa intendo:
try:
self.layers[pos].extend(node)
except IndexError:
self.layers.append([])
self.layers[pos].extend(nodes)
(So che l'indice pos
non può essere più alto della lunghezza dei livelli, quindi aggiungerne uno se si verifica un errore è sempre sufficiente)
Quindi tornando alla mia domanda, è quella cattiva pratica di codifica, o è giusto farlo in questo modo per prestazioni?
Ho trovato questa discussione a riguardo, ma le prestazioni non erano un argomento lì.