Op 17 oktober 2010 16:37 heeft Geert Stappers <stapp...@stappers.nl> het volgende geschreven: > Op 20101017 om 15:12 schreef Thomas Miedema: >> 2010/10/17 Wouter van Heyst <lars...@larstiq.dyndns.org> >> > On Sun, Oct 17, 2010 at 14:41:38 +0200, Geert Stappers wrote: >> > > Op 20101017 om 13:35 schreef Dirkjan Ochtman: >> > > > 2010/10/17 Geert Stappers <stapp...@stappers.nl>: >> > > > > Misschien zit het al in Python en weet ik niet hoe het heet. >> > > > > >> > > > > Wat is de Python naam van "breed venster over lijst schuiven"? >> > > > >> > > > itertools! >> > > > >> > > > http://docs.python.org/library/itertools.html >> > > >> > > Wie wil er wat meer over vertellen? >> > >> > De voorbeelden in de documentatie herbergen een sliding window >> > implementatie, die kan je zo overnemen? > > Nou, ik denk dat de documentie voorbeelden verbergt ;-) > Althans, het voorbeeld met 'take' krijg ik niet aan de praat. > > De discussie heeft me ondertussen wel keywords opgeleverd > die ik aan Google kon voeren. > > python sliding window iterator > > En nu heb ik het warme gevoel > dat ik niet alleen was met mijn probleem :-) > >> for i in range(len(lijst) - 3): >> print lijst[i:i+3] > > > Niet zo Pythontic als ik wilde, maar wel waar ik mee verder ga.
En zo? class Window(object): def __init__(self, n): self.n = n def __call__(self, list): ret = [] for i in list: if len(ret) == self.n: yield ret ret = ret[1:] ret.append(i) if len(ret) == self.n: yield ret lijst = [1, 2, 3, 3, 4, 10 , 3 ,2, 2, 1] w=Window(3) for three in w(lijst): print three -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob _______________________________________________ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl