Michael Spencer wrote: > Alex Martelli wrote: > [explanation and the following code:] > >> >>> a, b, c = it.islice( >> ... it.chain( >> ... line.split(':'), >> ... it.repeat(some_default), >> ... ), >> ... 3) >> ... >> ... >> >>> def pad_with_default(N, iterable, default=None): >> ... it = iter(iterable) >> ... for x in it: >> ... if N<=0: break >> ... yield x >> ... N -= 1 >> ... while N>0: >> ... yield default >> ... N -= 1 > > Why not put these together and put it in itertools, since the requirement > seems > to crop up every other week? > > >>> line = "A:B:C".split(":") > ... > >>> def ipad(N,iterable, default = None): > ... return it.islice(it.chain(iterable, it.repeat(default)), N) > ... > >>> a,b,c,d = ipad(4,line) > >>> a,b,c,d > ('A', 'B', 'C', None)
Good idea! (+1 if this was posted on python-dev!) Reinhold -- http://mail.python.org/mailman/listinfo/python-list