These are excerpts shown as snippets from a main file named ex13/sllist.py. They generally only make sense in the context of the exercise text, but they're shown here separated by H2 heading tags for audible readers like NV Access.
class SingleLinkedListNode(object): def __init__(self, value, nxt): self.value = value self.next = nxt def __repr__(self): nval = self.next and self.next.value or None return f"[{self.value}:{repr(nval)}]"
class SingleLinkedList(object): def __init__(self): self.begin = None self.end = None def push(self, obj): """Appends a new value on the end of the list.""" def pop(self): """Removes the last item and returns it.""" def shift(self, obj): """Another name for push.""" def unshift(self): """Removes the first item and returns it.""" def remove(self, obj): """Finds a matching item and removes it from the list.""" def first(self): """Returns a *reference* to the first item, does not remove.""" def last(self): """Returns a reference to the last item, does not remove.""" def count(self): """Counts the number of elements in the list.""" def get(self, index): """Get the value at index.""" def dump(self, mark): """Debugging function that dumps the contents of the list."""