[Tutor] Make a linked list subscriptable?
Sarah Hembree
sarah123ed at gmail.com
Wed Jul 10 20:30:39 EDT 2019
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.
More information about the Tutor
mailing list