[Python-Dev] syntactic shortcut - unpack to variably sized list
Nick Coghlan
ncoghlan at iinet.net.au
Sat Nov 13 14:41:25 CET 2004
Martin v. Löwis wrote:
> Nick Coghlan wrote:
>
>> x = L[i:i+n]; del L[i:i+n]; return x
>>
>> By default, n = 1, so the standard behaviour of list.pop is preserved.
>
>
> This default would actually change the standard behaviour: whereas it
> now returns a single element, it would then return a list containing
> the single element.
Ah, good point.
I'd see two possible fixes to that:
a) have n=0 be the default, and mean 'give me the element, not a list
with 1 element" (L.pop(0,1) would then mean "give me a list containing
only the first element"). That's a little magical for my taste, though.
b) have a new method called 'extract' or 'poplist' or 'popslice' or
similar (with the behaviour given above)
Actually, if we went with the b) option, and the name 'popslice', I
would suggest the following signature:
list.popslice(start=0, end, step=1)
i.e. L.popslice(a, b, c) is to L[a:b:c] as L.pop(a) is to L[a]
And, returning once again to the OP's example, we would have:
a, b = list.popslice(2)
Cheers,
Nick.
--
Nick Coghlan | Brisbane, Australia
Email: ncoghlan at email.com | Mobile: +61 409 573 268
More information about the Python-Dev
mailing list