list unpack trick?
Alex Martelli
aleaxit at yahoo.com
Sat Jan 22 03:50:36 EST 2005
Fredrik Lundh <fredrik at pythonware.com> wrote:
...
> or (readable):
>
> if len(list) < n:
> list.extend((n - len(list)) * [item])
I find it just as readable without the redundant if guard -- just:
alist.extend((n - len(alist)) * [item])
of course, this guard-less version depends on N*[x] being the empty list
when N<=0, but AFAIK that's always been the case in Python (and has
always struck me as a nicely intuitive semantics for that * operator).
itertools-lovers may prefer:
alist.extend(itertools.repeat(item, n-len(alist)))
a bit less concise but nice in its own way (itertools.repeat gives an
empty iterator when its 2nd argument is <=0, of course).
Alex
More information about the Python-list
mailing list