Skip to content

Lista dispersa #47

@delapuente

Description

@delapuente

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

Metadata

Metadata

Labels

ejercicioEjercicios propuestos en clase por alumnos o el mentor.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions