Given a tuple of tuples T:
((\'a\', \'b\'))
and an individual tuple t1:
(\'a\',\'b\')
Check again. You likely have a bug somewhere else in your code. This check does work.
As for the update, you're not creating a nested tuple.
(('a', 'b')) == ('a', 'b')
If you need a one-element tuple, you need a trailing coma:
(('a', 'b'),)
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.
Doing this (('a', 'b'))
does not make a tuple containing a tuple as you can see here:
>>> T = (('a','b'))
>>> T
('a', 'b')
To make a single element tuple you need to add a trialing comma:
>>> T = (('a','b'),)
>>> t1 in T
True
>>> T
(('a', 'b'),)
In fact the parenthesis aren't even a requirement as this will also create a tuple:
>>> t1 = 'a','b'
>>> t1
('a', 'b')
>>> 1,2,3,4,5,6
(1, 2, 3, 4, 5, 6)