Question about tuple lengths

MM Zeeman mmzeeman at xs4all.nl
Wed Dec 14 14:57:14 EST 2005


Carl J. Van Arsdall wrote:

> 
>  From my interpreter prompt:
> 
>  >>> tuple = ("blah")
>  >>> len(tuple)
> 4
>  >>> tuple2 = ("blah",)
>  >>> len (tuple2)
> 1
> 
> So why is a tuple containing the string "blah" without the comma of
> length four? Is there a good reason for this or is this a bug?
> 

Hello,

Thats because the expression ("blah") actually resolves to "blah" instead of
a tuple containing the string "blah".

>>> type(("spam"))
<type 'str'>

Adding a comma after spam results in the tuple being created.

>>> type(("spam",))
<type 'tuple'>

And to make things even more confusing, just adding a comma without braces
will give you a tuple too.

>>> "spam",
('spam',)

The explanation for this all can be found at:
http://docs.python.org/ref/parenthesized.html

Regards,

Maas





More information about the Python-list mailing list