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