pop() clarification

Facundo Batista facundo at taniquetil.com.ar
Wed Apr 11 19:07:15 CEST 2007


Scott wrote:

> Now I know list is a bad name, but for the sake of arguement lets assume its 
> not a built in sequence>

It's easier to use another name, than writing all that parragraph, ;)


> I understand all that.  What I don't understand is why all the documentation 
> I see says, "When removing a specific element from a list using pop() it 
> must be in this format: list.pop([i]).

You're reading it everywhere because it's the correct syntax, ;)

> At first I took that to mean that list.pop(i) would return some type of 
> error, but it doesn't.

"i" is enclosed in square brackets because it's optional. So,
list.pop(i) is a correct way to call it, as correct as list.pop().

Take note that list.pop([i]) is *not* the correct way to call it.

I assume you're getting confused by the [], asuming that those means a
list. No. Take a look here:

  http://www.python.org/doc/current/lib/typesseq-mutable.html

As you see there, when an iterable is needed, it just named different,
syntax do not use brackets to mean "list".


> Now I'm not stupid enough to believe that I'm the first to try:
>>>>list = ['this', 'is', 'an', 'example']
>>>>list.pop(1)
> and have it return the desired effect of:
> 'is'
>>>>list
> ['this', 'an', 'example']

But try this also:

>>> l = ['this', 'is', 'an', 'example']
>>> l.pop([2])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required

Regards,

-- 
.   Facundo
.
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/





More information about the Python-list mailing list