In the below example I would expect all the elements to be tuples, why is a tuple converted to a string when it only contains a single string?
>>> a
Your first two examples are not tuples, they are strings. Single-item tuples require a trailing comma, as in:
>>> a = [('a',), ('b',), ('c', 'd')] >>> a [('a',), ('b',), ('c', 'd')]