Sorted() 함수
1
2
tup1 = (1, 2, 3, 4, 5)
print(sorted(tup1, reverse=True))
- sorted() 함수에 인자로 iterable한 객체를 넣으면 그 객체의 내부값이 정렬된 리스트 객체가 리턴된다.
- sorted() 함수의 두 번째 이후 인자로 reverse라는 이름에 True값을 지정해 리턴하면 내림차순 정렬이 된다. (이 인자는 생략할 수 있다.)
1
2
3
4
5
6
def func1(row):
return row[0]
list1 = [[3, 4], [5, 6], [1, 2]]
print(sorted(list1, key = func1))
- 2차원 iterable 객체를 정렬하고 싶을 때는, 각 행을 인자로 넘기면 그 행의 원소 중 어떤 원소를 기준으로 할지를 리턴하는 함수를 key에 대입하여 두 번째 이후 인자로 넣으면 그 함수에서 리턴하는 기준값을 기준으로 객체를 정렬한다.
- 파이썬에서는 리스트/튜플끼리 부등호 연산을 수행하는 경우 첫 인덱스부터 끝 인덱스까지 순서대로 각 원소끼리 대소비교를 하므로, 만약 2차원 리스트를 정렬하면서 ‘첫 인덱스 값이 동일하면 둘째 인덱스 값 기준으로 정렬하라’는 목적이라면 굳이 key 인자를 지정할 필요는 없다. 만약 리스트의 각 행을 구성하는 원소들 사이의 연산값 둘 이상을 기준으로 정렬을 하고자 하는 경우라면, 그 연산값 각각을 원하는 우선순위에 맞게 순서대로 튜플에 담아 리턴하는 함수를 구현해 key 인자로 전달하면 된다.