2011-03-08 6 views

답변

23

사전 "a"는 파이썬에서 반복 가능한 구조입니다. for x in a으로 반복하면 사전의 키를 반복합니다.

두 번째 줄에서 max 함수는 반복 가능한 객체 (a)와 선택적 "key"함수의 두 인수를 취합니다. Key 함수는 a에서 항목의 값을 평가하는 데 사용됩니다. 가장 큰 것은 리턴됩니다.

예 : 단지 "키"가 출력되는 것을 여기

>>> 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 

참고. 우리가이 "get"키를 넘길 때 ...

>>> a.get(0) 
-1 
>>> a.get(1) 
3 
>>> a.get(3) 
21 

우리는 각 키의 값을 얻습니다. 이제 max가 어떻게 작동하는지보십시오.

>>> b=[2, 3, 5, 6, 4] 
>>> max(b) 
6 
>>> def inverse(x): 
...  return 1.0/x 
... 
>>> max(b, key=inverse) 
2 

최대 (기본적으로)는 반복 가능한 목록에서 가장 큰 숫자를 찾습니다. "inverse"함수를 정의하면, inverse(item)이 가장 큰 b에서 가장 큰 항목을 반환합니다.

이 두 항목을 결합하고 우리는 max(a, key=a.get)a.get(item)의 값이 가장 큰하는 aitem를 반환하는 것입니다 것을 알 수있다. 즉 가장 큰 값에 대응하는 키이다.

+0

정말 흥미로워지면 람다 함수를 사용해 볼 수도 있습니다 :'max (a, key = lambda x : a [x])' – ProdigySim

1

key 매개 변수의 작동 방식을 묻는 질문이 있으십니까? 사전에있는 모든 요소에 적용되는 호출 가능 함수를 사용합니다. 여러분의 사전의 경우, 단순히이 수행합니다

a.get(1) # 3 
a.get(0) # -1 
a.get(3) # 21 

max 다음 비교 값으로 키 함수의 결과를 사용하므로 분명 가장 높은 값을 반환하는 요소를 선택합니다 즉 3

관련 문제