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

Answer: 
For `('abc')` you get 'a' in `('abc')` return true.

But for `['abc']` as it is a array list you get 'a' in `['abc']` return false.

**Example:**

*Input:* `('abc') == 'abc'`

*Output:* `True`

So if we call 'a' in ('abc') it is same as 'a' in 'abc' because ('abc') is not a tuple but 'abc' is a array of character where character 'a' is in index 0 of string 'abc'. 

On the other hand ['abc'] is array list where 'abc' is a single string which is at index 0 of array ['abc'].

**Tupple Example:** *`x = ('abc', 'def', 'mnop')`*

**Array Example:** *`x = ['abc', 'def', 'mnop']`*

or 

```
x = ('abc'), y = 'abc'

```

Here always `x == y`.

But in case of `'a' in ['abc']` =>

```
x = ['abc'], y = 'abc'

```

Here `x != y` but `x[0] == y`
`('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'`.