Я делаю парсер Python, и это меня действительно сбивает с толку:
>>> 1 in [] in 'a'
False
>>> (1 in []) in 'a'
TypeError: 'in <string>' requires string as left operand, not bool
>>> 1 in ([] in 'a')
TypeError: 'in <string>' requires string as left operand, not list
Как именно "работает" на Python, в отношении ассоциативности и т.д.?
Почему два из этих выражений не ведут себя одинаково?