복붙노트

[PYTHON] 중첩 목록의 두 번째 열에서 최대 값 찾기?

PYTHON

중첩 목록의 두 번째 열에서 최대 값 찾기?

다음과 같은 목록이 있습니다.

alkaline_earth_values = [['beryllium', 4], ['magnesium', 12],['calcium', 20],
                         ['strontium', 38], ['barium', 56], ['radium', 88]]

만약 내가 max (list) 메쏘드를 단순히 사용한다면, 최대의 이름을 찾으려고한다면 'strontium'이라는 답을 얻을 것이다. 그러나 정수가 가장 높은 원소를 반환하려고한다.

해결법

  1. ==============================

    1.

    max(alkaline_earth_values, key=lambda x: x[1])
    

    max 함수의 key 인수는 max가 최대 요소가 검색 될 값을 알고 자 할 때 호출되는 함수를 지정하기 때문에이 함수가 작동하는 이유입니다. max는 시퀀스의 각 요소에 대해 해당 함수를 호출합니다. 그리고 lambda x : x [1]은리스트를 취하여 첫 번째 (계수가 0부터 시작) 요소를 반환하는 작은 함수를 만듭니다. 그래서

    k = lambda x: x[1]
    

    말하는 것과 같다.

    def k(l):
      return l[1]
    

    그러나 이와 같은 상황에서 사용하기에는 짧고 좋습니다.

  2. ==============================

    2.key 인수를 사용하십시오.

    key 인수를 사용하십시오.

    max(alk..., key=operator.itemgetter(1))
    
  3. from https://stackoverflow.com/questions/4800419/finding-max-value-in-the-second-column-of-a-nested-list by cc-by-sa and MIT license