Why is there this difference accessing the element(s) of t when making it a tuple?
>>> t = [('ID','int')]
>>> for r in t:
print r
('ID', 'int')
t = (('ID','int'))
>>> for r in t:
print r
ID
int
I’d expect this to be exactly the same as the first example! Whereas populating the tuple with more than one element the behavior changes.
>>> t = (('ID','int'),('DEF','str'))
>>> for r in t:
print r
('ID', 'int')
('DEF', 'str')
>>> t = [('ID','int'),('DEF','str')]
>>> for r in t:
print r
('ID', 'int')
('DEF', 'str')
Can somebody give a short explanation? I’m running python 2.7
(('a', 'b'))is the same as('a', 'b').You actually want
(('a', 'b'),)This is documented here:
Remember, that without this restriction, should the expression
(3) * (4)be the multiplication of two numbers, or two tuples? Most users would expect that to be the multiplication of numbers.