How might I best make a linked list subscriptable? Below is skeleton code
for a linked list (my
actual is much more). I've done __iter__ and __next__ but I would like to
be able to do start:stop:stride I just can't figure out how. Suggestions or
just hints please?



# -*- coding: utf8 -*-

class Node:
    def __init__(self, val=None, nxt=None):
        self.val = val
        self.next = nxt

class LinkedList:
    def __init__(self, node=None):
        self.root = node
        self.length = 0

    def prepend(self, data):
        """ add data to head/root of list """
        if self.root == None:
            self.root = Node(data)
            self.length = self.length + 1
        else:
            n = Node(data)
            n.next = self.root
            self.root = n
            self.length = self.length + 1

    def pop(self):
        """ Remove first data node """
        t = self.root.val
        if self.root:
            self.root = self.root.next
            self.length = self.length - 1
        return t

    def __repr__(self):
        tmp = self.root
        s = ''
        while tmp:
            s = s + str(tmp.val) + '> '
            tmp = tmp.next

        return s[:-2]

ll = LinkedList()
[ll.prepend(x) for x in range(14,-1,-1)]

>>> ll
0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14







--- We not only inherit the Earth from our Ancestors, we borrow it from our
Children. Aspire to grace.
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to