Odd list behavior

Peter Otten __peter__ at web.de
Wed May 13 18:23:47 EDT 2009


Evan Kroske wrote:

> I'm working on a simple file processing utility, and I encountered a
> weird error. If I try to get the first element of a list I'm splitting
> from a string, I get an error:
> 
> key = string.split()[0]
> Error!

When string contains only whitespace string.split() returns an empty list an 
then

>>> [][0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

> However, I can slice the list like normal, but that gives me a
> one-element-long list:
> 
> key = string.split()[:1]
> Success!

The slice length may be shorter than specified:

>>> [][:1]
[]


> Finally, the operation works perfectly if I initialize the list
> beforehand:
> 
> list = string.split()
> key = list[0]
> Success!

Not with the same string as in your previous examples.

Peter




More information about the Python-list mailing list