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)
Michael
-- http://mail.python.org/mailman/listinfo/python-list