-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
ejercicioEjercicios propuestos en clase por alumnos o el mentor.Ejercicios propuestos en clase por alumnos o el mentor.
Description
Implementad una lista dispersa como si se tratara de una collections.abc.MutableSequence
. Una lista dispersa es aquella que está ocupada por 0
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:
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
Metadata
Metadata
Assignees
Labels
ejercicioEjercicios propuestos en clase por alumnos o el mentor.Ejercicios propuestos en clase por alumnos o el mentor.