[python-users] Unendliche Listen? Kein Problem!
do_not_reply_to_this_address at t-online.de
do_not_reply_to_this_address at t-online.de
Sa Jun 6 14:42:43 CEST 2009
Moin,
ich habe eine Liste definiert die *alle* Fibonacci Zahlen enthält. Da
Python mit den neuen iteratorkonzepten lazy ist kann man soetwas
hinschreiben. Mich interessierte nur mal ob das geht, weil ich es in
Haskell gesehen hatte.
Aber Python kann es auch. Nur die letzen drei Zeilen sind wichtig.
Gruß Dirk
import itertools
def tail(y):
for i,x in enumerate(y):
if i!=0:
yield x
class MyList:
def __init__(self,x):
self.x=x
def get_iter(self):
i,j=itertools.tee(self.w)
self.w=i
return j
def __getitem__(self, key):
if key<len(self.x):
return self.x[key]
else:
it=self.get_iter()
i=0
while True:
y=next(it)
if (key-len(self.x))==i:
return y
i=i+1
def append(self,w):
self.w=w
c=MyList([1,2])
c.append(map(lambda x: x[0]+x[1], zip(c,tail(c))))
print (list(itertools.islice(c,0,10)))
Mehr Informationen über die Mailingliste python-users