Sto cercando una struttura dati Python incorporata che possa add
un nuovo elemento, remove
un elemento esistente, e scegliere un elemento casuale, tutto in meglio di Puntuale.Struttura dati Python per efficiente add, remove e random.choice
Speravo che set
potesse farlo, ma AFAIK, l'unico modo per scegliere un elemento casuale da un set Python è random.choice(list(my_set))
, che richiede O (n) tempo.
Preferisco di gran lunga una soluzione incorporata in Python, poiché richiede efficienza e facilità di implementazione. Sfortunatamente, Python non sembra avere tipi di dati ad albero incorporati.
Questo è forse il problema del design dell'interfaccia. la selezione casuale in tree/hashmap non è difficile, ma anche la mappa/unordered_map di C++ STL non supporta la selezione casuale. – richselian