Sobes.tech
Middle

Qual è la complessità temporale dell'aggiunta e della rimozione di un elemento in un dizionario in Python?

sobes.tech AI

Risposta dell'AI

In Python, il dizionario è implementato su una tabella hash, che garantisce in media una complessità temporale O(1) per le operazioni di aggiunta e rimozione di elementi.

  • Aggiunta di un elemento: si calcola l'hash della chiave e l'elemento viene inserito nella cella corrispondente. In media, ciò richiede un tempo costante.
  • Rimozione di un elemento: avviene anch'essa tramite l'hash della chiave e richiede in media O(1).

Tuttavia, nel caso peggiore (ad esempio, con molte collisioni), le operazioni possono degradarsi a O(n), dove n è il numero di elementi nel dizionario, ma tali casi sono estremamente rari grazie a una buona implementazione e all'espansione dinamica del dizionario.

Esempio:

my_dict = {}
my_dict['key'] = 'value'  # aggiunta — O(1)
del my_dict['key']          # rimozione — O(1)