Efficient way to break up a list into two pieces

marwie marwie at gmx.de
Sat Feb 20 19:55:10 EST 2010


Hello,

I recently read about augmented assignments and that (with l1, l2
being lists)

    l1.extend(l2)

is more efficient than

    l1 = l1 + l2

because unnecessary copy operations can be avoided. Now my question is
if there's a similar thing for breaking a list into two parts. Let's
say I want to remove from l1 everything from and including position 10
and store it in l2. Then I can write

    l2 = l1[10:]
    del l1[10:]

But since I'm assigning a slice the elements will be copied.
Basically, I'm looking for something like l1.pop(10,len(l1)) which
returns and removes a whole chunk of data. Is there such a thing (and
if not, why not?)

Cheers,
Martin.



More information about the Python-list mailing list