Implementad una lista dispersa como si se tratara de una collections.abc.MutableSequence. Una lista dispersa es aquella que está ocupada por 0s (o algún valor en particular) en su mayor parte. Ante este caso es más eficaz guardar las posiciónes en las que hay algo en un diccionario. Un uso sería este:
class SparseList:
...
# Creation allows setting the default value
l = SparseList(default=None)
assert len(l) == 0
# this would throw IndexError: l[0]
# Assignation always work and the list is automatically resized
l[5] = 1
assert len(l) == 6
assert l[5] == 1
assert l[2] == None
# After deleting one item, the items in greater positions shift left one index
del l[4]
assert len(l) == 5
assert l[4] == 1
# this would throw IndexError: l[5]
# The list must implement all the `MutableSequence` API
l.insert(3, 100)
assert len(l) == 6
assert l[3] == 100
Implementad una lista dispersa como si se tratara de una
collections.abc.MutableSequence
. Una lista dispersa es aquella que está ocupada por0
s (o algún valor en particular) en su mayor parte. Ante este caso es más eficaz guardar las posiciónes en las que hay algo en un diccionario. Un uso sería este: