Given arr=[1,True,'a',2],
Decoding first expression: ('a' in arr) in arr,
step-by-step
('a' in arr) in arr evaluates to
(True) in [1,True,'a',2] evaluates to
True
Decoding second expression: ('a' in arr in arr)
step-by-step
('a' in arr in arr) This is equivalent to
('a' in arr and arr in arr) which evaluates to
(True and False) which evaluates to
(False)
More on: Precedence and associative nature https://www.programiz.com/python-programming/precedence-associativity