LinkedList in Python

26/02/2010 - 00:58 von Ole Streicher | Report spam
Hallo,

ich benötige eine LinkedList in Python. Vor allem, um zwei vorhandene (lange,
Millionen Elemente enthaltende) Listen kombinieren zu können.

1. Frage: Gibts schon sowas ("batteries included")?
2. Frage: Selbstbau:
-8<--
class LinkedList(object):
def __init__(self):
self.first = None
self.last = None

def add(self, value):
v = [ value, None ]
if self.first is None:
self.first = v
else:
self.last[1] = v
self.last = v

def __iter__(self):
return ListIterator(self.first)

class ListIterator(object):
def __init__(self, v):
self.v = v

def __iter__(self):
print 'iterator.__iter__() called'
return self.v[0]

def next(self):
if self.v is None
raise StopIteration
else:
print self.v
self.v = self.v[1]
-8<--

ruft beim Iterieren niemals "ListIterator.__iter__()" auf, sondern gibt immer
None. Warum?

Viele Grüße

Ole
 

Lesen sie die antworten

#1 Diez B. Roggisch
26/02/2010 - 01:21 | Warnen spam
Am 26.02.10 00:58, schrieb Ole Streicher:
Hallo,

ich benötige eine LinkedList in Python. Vor allem, um zwei vorhandene (lange,
Millionen Elemente enthaltende) Listen kombinieren zu können.

1. Frage: Gibts schon sowas ("batteries included")?
2. Frage: Selbstbau:




itertools.chain sollte doch reichen, wenn du eh iterieren willst.

Diez

Ähnliche fragen