파이썬 리스트속 딕셔너리 정렬

조회수 601회

a=[{'apple'=30,'banana'=50,'fruit'=25},
   {'apple'=50'banana'=30,'fruit'=10},
   {'apple'=22,'banana'=55,'fruit'=66},
   {'apple'=32,'banana'=10,'fruit'=5}]

이렇게 리스트 속 딕셔너리가 있는데 여기서 fruit기준으로 정렬하여 순위를 알고싶은데 어떻게 해야할까요.

fruit의 숫자가 높은 66을 처음으로 1이란 숫자를 받아주고 25로 2 받아주고 10으로 3 받아주고 5로 4받아주고 이걸 하고싶은데 rank함수나 max함수 써보려해도 쉽지않더라구요.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    sorted(a, key=lambda d:(d['fruit'], d['apple']), reverse=True) # fruit 로 같으면 apple 로 정렬
    
    [{'apple': 22, 'banana': 55, 'fruit': 66},
     {'apple': 30, 'banana': 50, 'fruit': 25},
     {'apple': 50, 'banana': 30, 'fruit': 10},
     {'apple': 32, 'banana': 10, 'fruit': 5}]
    
    • 혹시 fruit의 값이 같으면은 정렬을 어떻게 시켜야할까요 66 66 으로 값이 똑같을때요 뤼튀 2020.6.14 23:38
    • 같을때 조건이 있을 것 아닌가요? 튜틀로 나란히 순서대로 넣어주면 됩니다. 정영훈 2020.6.15 01:14

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)