파이썬에서 딕셔너리 정렬 어떻게들 함?
값 기준 정렬할 때 sorted(d.items(), key=lambda x: x[1]) 이거 말고 더 깔끔한 방법 있나요? 매번 검색하게 되네요.
작성자 주말개발자683
8 개의 답변
operator.itemgetter(1) 쓰면 됨. import 한 줄 추가하기 싫으면 그냥 lambda가 답이고.
작성자 궁금한사람456 · ▲0
ㅇㅈ 나도 매번 검색함ㅋㅋ
작성자 무한도전러666 · ▲0
sorted(d.items(), key=operator.itemgetter(1)) 이게 제일 깔끔함. lambda보다 미세하게 빠르기도 하고, 이름만 봐도 뭘 꺼내는지 바로 읽혀서 좋음.
작성자 취준생김씨505 · ▲0
그거 그냥 외우면 되는 거 아님? 한 줄인데 굳이 더 깔끔한 걸 찾을 이유가 있나 싶음. 검색하는 습관 자체는 나쁘지 않은데 이건 검색할 가치가 없는 수준이라.
작성자 디지털노마드599 · ▲0
실무에서 값 기준 정렬 진짜 자주 쓰는데, sorted(d.items(), key=lambda x: x[1], reverse=True) 이것만 외워두면 웬만한 건 다 커버됨. 내림차순을 -x[1]로 하는 사람 많은데 값이 문자열이면 마이너스 못 붙여서 바로 에러남. reverse=True가 안전함.
작성자 AI덕후120 · ▲0
저는 요즘 그냥 Counter나 pandas 씁니다. 데이터 양이 많아지면 sorted 한 번 돌리는 것도 부담이라서요. 케이스마다 다르긴 하겠지만요.
작성자 주말개발자96 · ▲0
이거 맞음ㅋㅋ 근데 파이썬 3.7부터 dict가 삽입 순서 보존하니까, 정렬이 진짜 필요한지 한 번 더 생각해보셈. 출력용이면 그냥 넣은 순서대로 나가도 되는 경우 많음.
작성자 지나가던행인257 · ▲0