On 2016-04-11 01:13, Fillmore wrote:
Sorry guys. It was not my intention to piss off anyone...just trying to
understand how the languare works
I guess that the answer to my question is: there is no such thing as a
one-element tuple,
and Python will automatically convert a one-element tuple to a string... hence
the
behavior I observed is explained...
>>> a = ('hello','bonjour')
>>> b = ('hello')
>>> b
'hello'
>>> a
('hello', 'bonjour')
>>>
Did I get this right this time?
Nope. :-)
A one-element tuple can be written as:
>>> ('hello',)
('hello',)
As has been said already, it's the comma that makes the tuple. The
parentheses are often needed to avoid ambiguity.
For example, object are passed into a function thus:
f(x, y)
(In reality, it's making a tuple and then passing that in.)
What if you want to pass in the tuple (1, 2) as a single argument?
f((1, 2))
If you write this:
f(1, 2)
it passes them in as 2 separate arguments.
Or consider this:
f((1, 2), 3)
This has 2 arguments: the first is the tuple (1, 2) and the second is
the int 3.
There _is_ one exception though: (). It's the empty tuple (a 0-element
tuple). It doesn't have a comma and the parentheses are mandatory.
There's no other way to write it.
--
https://mail.python.org/mailman/listinfo/python-list