(Python) sort와 sorted
sort와 sorted
두개의 함수 모두 값의 정렬을 위한 함수이다
sort()
값을 정렬후 정렬된 값을 돌려주지 않아 변수에 넣어 쓸 수 없으며 리스트형에서만 동작한다. 내림차순 정렬 : sort(reverse=True)
lists = list.sort() # 불가능 None이 반환됨
list.sort(reverse=True, key = <function>) # 내림차순 정렬
sorted()
sorted()함수는 값을 정렬한 후 정렬된 값들을 돌려주기 때문에 변수에 넣어 값들을 활용할 수 있으며 이터러블한 자료형에서 동작한다 내림차순 정렬 : sorted(reverse=True)
lists = sorted(list) #가능
lists = sorted(list, reverse=True, key = <function>) # 내림차순 정렬
정렬한 값들의 자체를 정렬하여 출력하고 싶을땐 sort를 사용하자. 하지만 정렬한 값들을 다른 객체해 저장해 무언가를 해야한다면 sorted를 사용해주자
reverse
reverse의 default는 false이다. reverse=True를 매개변수로 입력하면 내림차순으로 정렬할 수 있다.
a = ['a', 'b', 'c', 'd', 'f', 'g']
a.sort(reverse=True)
print(a) # ['g', 'f', 'd', 'c', 'b', 'a']
key
정렬을 목적으로 하는 함수를 값으로 넣은다. key = lambda를 이용하여 정렬할 기준을 정할 수 있다.
람다식에서 x[0]의 의미는 키 값 기준으로 정렬을 의미한다. x[1]은 값을 기준으로 정렬한다. 아래의 코드를 보면 1번째값의 인덱스를
기준으로 정렬하기 위해 x[1]으로 정렬하였다
a = [['a', 10], ['b', 9], ['c', 3], ['d', 20], ['f', 15], ['g', 1]]
a.sort(reverse=True, key = lambda x: x[1])
print(a) # [['d', 20], ['f', 15], ['a', 10], ['b', 9], ['c', 3], ['g', 1]]