[docs] ISSUE I FOUND IN TUPLES
Julien Palard
julien at palard.fr
Tue Aug 20 16:04:36 EDT 2019
Hi Vinay,
> I noticed is a list containing single list can identify inner list as a single element of the list whereas in tuples a tuple containing single tuple is unable to identify as a single element unless a comma is specified.
Thanks for reporting!
This is known and documented, quoting the doc [1]:
> A special problem is the construction of tuples containing 0 or 1 items: the syntax has some extra quirks to accommodate these. Empty tuples are constructed by an empty pair of parentheses; a tuple with one item is constructed by following a value with a comma (it is not sufficient to enclose a single value in parentheses). Ugly, but effective. For example:
This is because parenthesis play multiple roles like describing tuples and mathematical priority:
Should:
(1 + 1) * 2
be interpreted "twice the tuple containing the result of 1 + 1" which is (2, 2), or the number 4?
To disambiguate, the trick is to add a trailing coma:
>>> (1 + 1) * 2
4
>>> (1 + 1, ) * 2
(2, 2)
If you have a better idea, please tell :)
If you worry about it, don't, you won't use often tuples of a single element, and it's still possible to build them, so it's OK.
[1]: https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences
--
Julien Palard
https://mdk.fr
More information about the docs
mailing list