Question: When using the interpreter, the expression `'a' in ('abc')` returns True, while `'a' in ['abc']` returns False. Can somebody explain this behaviour?

Answer: 
`('abc')` is the same as `'abc'`. `'abc'` contains the substring `'a'`, hence `'a' in 'abc' == True`.

If you want the tuple instead, you need to write `('abc', )`.

`['abc']` is a list (containing a single element, the string `'abc'`). `'a'` is not a member of this list, so `'a' in ['abc'] == False`
`('abc')` is equivalent to `'abc'`.

`'a' in ('abc')` is equivalent to `'a' in 'abc'`.

`'a' in ('abc', )` returns `False` as `'a' in ['abc']`.

`'a' in ['a', 'b', 'c']` returns `True` as `'a' in 'abc'`.