[Python-ideas] pop multiple elements of a list at once

Terry Reedy tjreedy at udel.edu
Mon Jul 12 07:29:01 CEST 2010


On 7/11/2010 1:58 PM, Diego Jacobi wrote:

> The thing i found is that, to pop a variable chunk of data from this
> buffer without copying it and deleting the elements, i have to pop one
> element at the time.

In CPython, popping copies a reference and them deletes it from the 
list. The item popped is not copied. It is a convenience, which I 
proposed, but not a necessity. You can easily write a function that 
returns a slice after deleting it.

def pop_slice(lis, n):
   tem = lis[:-n]
   del lis[:-n]
   return tem

I expect this to run faster than popping more than a few items one at a 
time.


-- 
Terry Jan Reedy




More information about the Python-ideas mailing list