Вот код:
a = [1,2,3,4]
b = {}
b[1] = 10
b[2] = 8
b[3] = 7
b[4] = 5
print max(a,key=lambda w: b[w])
Это распечатывает 1
.
Я не понимаю, как здесь оценивается max(a,key=lambda w: b[w])
; Я предполагаю, что для каждого значения i в a он находит соответствующее значение b [i] по
- сохранение текущего значения i как w в лямбда-функции
- получение соответствующего значения из b [i] и сохранение его в ключе.
Но тогда почему он печатает 1 вместо 11? Или почему не выводится 10, так как это действительно максимальное число?