Buonasera,
in termini di uso della memoria per quale ragione l'oggetto range occupa meno memoria dell'equivalente oggetto generatore per un medesimo insieme di valori da memorizzare? Ad es. (Dal mio Spyder):
interval = range(1000)
sys.getsizeof(interval)
Out[56]: 48
inter = list(interval)
sys.getsizeof(inter)
Out[58]: 9112
type(interval)
Out[59]: range
intervallum = (i for i in range(1000))
sys.getsizeof(intervallum)
Out[61]: 120
Il generatore occupa circa 3 volte la memoria dell'oggetto range. Non ci si dovrebbe aspettare un comportamento equivalente o perlomeno simile?
Grazie a tutti
in termini di uso della memoria per quale ragione l'oggetto range occupa meno memoria dell'equivalente oggetto generatore per un medesimo insieme di valori da memorizzare? Ad es. (Dal mio Spyder):
interval = range(1000)
sys.getsizeof(interval)
Out[56]: 48
inter = list(interval)
sys.getsizeof(inter)
Out[58]: 9112
type(interval)
Out[59]: range
intervallum = (i for i in range(1000))
sys.getsizeof(intervallum)
Out[61]: 120
Il generatore occupa circa 3 volte la memoria dell'oggetto range. Non ci si dovrebbe aspettare un comportamento equivalente o perlomeno simile?
Grazie a tutti