본문 바로가기
IT

[Python] 정렬 함수 sort(), sorted() 키 값으로 정렬하기

by 퐁시냥 2021. 11. 18.

파이썬으로 웹개발 수업을 듣다가 키 값으로 정렬이 필요해서, sort()함수와 sorted() 함수의 사용방법을 확인해봤다. 

쓸 때마다 헷갈려서 그때그때 봐야겠다. 

 

Python 내장함수로, 정렬함수에는 크게 2가지가 있음. 

Python은 C++ 보다도 정렬이 간단하고 직관적이라 더 좋다. 꼭 외우기!

 

  • sorted() : 배열 자체는 변경되지 않음. 다른 변수에 담아두고 사용하는 경우가 많음
# 1. 인자 없이 사용할 경우에는 순서대로 정렬된다. 
a = [ 9, 8, 7, 6, 5]
b = sorted(a)

# b = [5, 6, 7, 8, 9]

# 2. lambda 를 사용하여 dictionary 자료형에서 key 값으로 정렬하기
#### num 값은 내림차순 (-x['num']), done 값은 오름차순으로 정렬
c = [{"num" : 1, "done" : 0}, {"num" : 3, "done" : 1}, {"num" : 5, "done" : 1}, {"num" : 10, "done" : 1}]
d = sorted(c, key = lambda x: (-x['num'],x['done']))
# d = [{'num': 10, 'done': 1}, {'num': 5, 'done': 1}, {'num': 3, 'done': 1}, {'num': 1, 'done': 0}]
  • sort() : 배열 자체를 정렬한 값으로 변경
# 1. 인자 없이 사용할 경우에는 순서대로 정렬된다. (a 리스트 순서가 변경)
a = [ 9, 8, 7, 6, 5]
a.sort()
# a = [5, 6, 7, 8, 9]

# 2. 내림차순 정렬
a.sort(reverse = True)
# a = [9, 8, 7, 6, 5]

# 3. lambda 를 사용하여 dictionary 자료형에서 key 값으로 정렬하기
#### num 값은 내림차순 (-x['num']), done 값은 오름차순으로 정렬
c = [{"num" : 1, "done" : 0}, {"num" : 3, "done" : 1}, {"num" : 5, "done" : 1}, {"num" : 10, "done" : 1}]
c.sort(key = lambda x: (-x['num'],x['done']))

# c = [{'num': 10, 'done': 1}, {'num': 5, 'done': 1}, {'num': 3, 'done': 1}, {'num': 1, 'done': 0}]

댓글