Benutzer:Dirk Huenniger/pythontest

Aus Wikibooks
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)))