Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lista dispersa #47

Open
delapuente opened this issue Jun 2, 2019 · 0 comments
Open

Lista dispersa #47

delapuente opened this issue Jun 2, 2019 · 0 comments
Assignees
Labels
ejercicio Ejercicios propuestos en clase por alumnos o el mentor.

Comments

@delapuente
Copy link
Collaborator

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
@delapuente delapuente added the ejercicio Ejercicios propuestos en clase por alumnos o el mentor. label Jun 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ejercicio Ejercicios propuestos en clase por alumnos o el mentor.
Projects
None yet
Development

No branches or pull requests

5 participants