Ваше заблуждение может быть связано с
Во всех этих случаях логический результат оценки
В случае
print( (b, a) [a < b] )
и
print((lambda: b, lambda: a)[a < b]())
объект - это кортеж, содержащий либо сами переменные, либо очень простые анонимные функции, которые возвращают эти переменные.
В случае
print({True: a, False: b} [a < b])
выражение вычисляется и используется в качестве ключа для словаря, который имеет как True, так и False в качестве ключей. Предположение, что это означает, что это должна быть более старая версия Python, неверно, поскольку словарь не представляет переназначение значений, а представляет собой просто структуру данных, в которой ключ отображается на значение. True и False являются действительными ключами, и именно это обстоятельство и используется здесь.
Наконец:
print( a if a < b else b )
Это хороший и лаконичный способ выразить то же самое и фактически строку кода, которую я использовал бы в этом случае