Доброго времени суток.
Наткнулся на следующий код и никак не могу понять как он работает (вывод всех трех print'ов абсолютно одинаковые).
В частности, не могу понять как между собой взаимодействует, как я понимаю, список из одного элемента (boolean) и трех разных типов данных(кортеж, словарь, лямбда-функции).
Особенно последняя конструкция мне не понятна, так как в ней сами функции не описаны.
Код:
a = 10
b = 20
print("Minimal is", (b, a) [a<b]) # Minimal is 10
print("Minimal is", {True: a, False: b} [a<b]) # Minimal is 10
print("Minimal is", (lambda: b, lambda: a) [a<b]()) # Minimal is 10