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 not a tuple. I think you confused that with tuple `('abc',)`. 

Actually, `('abc')` is same as `'abc'`, an `array of characters` where `a` as character is in it, hence, the first lookup returns `True`:

```
>>> 'a' in 'abc'
True

```

On the other hand, `['abc']` is a list of string or a list of list of characters *(you can think of it as a 2-d matrix of characters `[['a', 'b', 'c']]`)* where `a`, as a single character, is not the member of the outer list. In fact, it is the first character of the inner list:

```
>>> 'a' in ['abc']
False

>>> 'a' in ['abc'][0]
True

>>> 'a' == ['abc'][0][0]
True

```
`('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'`.