Given a tuple of tuples T:
(('a', 'b'))
and an individual tuple t1:
('a','b')
why does:
t1 in T
return False?
In [22]: T = (('a','b'))
In [23]: t1 = ('a','b')
In [24]: t1 in T
Out[24]: False
And how then to check that a tuple is in another tuple?
The problem is because T is not a tuple of tuples, it is just a tuple. The comma makes a tuple, not the parentheses. Should be:
>>> T = (('a','b'),)
>>> t1 = ('a', 'b')
>>> t1 in T
True
In fact, you can loose the outer parentheses:
>>> T = ('a','b'),
>>> t1 = 'a','b'
>>> type(T)
<type 'tuple'>
>>> type(T[0])
<type 'tuple'>
>>> type(t1)
<type 'tuple'>
>>> t1 in T
True
Although sometimes they are needed for precedence, if in doubt put them in. But remember, it is the comma that makes it a tuple.