Filling in a tuple from unknown size list
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Fri Nov 27 12:30:26 EST 2009
On Fri, 27 Nov 2009 04:18:08 -0800, boblatest wrote:
> Here's my question: Given a list of onknown length, I'd like to be able
> to do the following:
>
> (a, b, c, d, e, f) = list
>
> If the list has fewer items than the tuple, I'd like the remaining tuple
> elements to be set to "None". If the list is longer, I'd like the excess
> elements to be ignored.
I'd call that a code-smell. If I saw that in code, I'd think long and
hard about why it was there and if I could eliminate the names a...f and
just work directly with the list.
But if you really do need it, I think the simplest and best way is to use
the technique Stefan suggested:
a, b, c, d, e, f = (list + [None]*6)[:6]
provided list is short. If you fear that list might be huge and copying
it will be prohibitively expensive:
a, b, c, d, e, f = (list[:6] + [None]*6)[:6]
--
Steven
More information about the Python-list
mailing list