Словарь "a" - это итеративная структура в python. Когда вы перебираете for x in a
, вы перебираете ключи в словаре.
Во второй строке функция max принимает два аргумента: итерируемый объект (a) и необязательная функция «ключ». Функция Key будет использоваться для оценки стоимости элементов в - самый большой из которых будет возвращен.
Примеры:
>>> a = dict(((1,3),(0,-1),(3,21)))
>>> for x in a:
... print x #output the value of each item in our iteration
...
0
1
3
Обратите внимание, что выводятся только «ключи». Когда мы передаем каждый из этих ключей, чтобы "получить" ...
>>> a.get(0)
-1
>>> a.get(1)
3
>>> a.get(3)
21
Мы получаем значение для каждого ключа. Теперь посмотрим, как работает Макс.
>>> b=[2, 3, 5, 6, 4]
>>> max(b)
6
>>> def inverse(x):
... return 1.0 / x
...
>>> max(b, key=inverse)
2
Как видите, max (по умолчанию) просто найдет наибольшее число в нашем итерируемом списке. Если мы определим «обратную» функцию, она вернет самый большой элемент в b, для которого inverse(item)
является самым большим.
Объедините эти два элемента, и мы увидим, что max(a, key=a.get)
вернет item
в a
, для которого значение a.get(item)
является наибольшим. то есть ключ, соответствующий наибольшему значению.