헷갈려하던 python 정렬에 대해 정리해 보려 합니다
python 정렬 라이브러리는 sorted와 sort가 있습니다
sorted와 sort의 공통점은 오름차순으로 key값을 사용해 정렬가능하다는 것이고
sorted는 별도의 정렬된 리스트를 return해주고 sort는 별도 정렬된 리스트가 반환되지 않고 내부원소가 바로 정렬된다는 차이점이 있습니다
sorted()
array = [5, 3, 2, 4, 1]
result = sorted(array)
print(result) // [1, 2, 3, 4, 5]
sort()
array = [4, 5, 2, 1, 3]
array.sort()
print(array) // [1, 2, 3, 4, 5]
key를 활용한 소스코드
sort와 sorted는 key매개변수를 입력으로 받을 수 있습니다
key값으로는 하나의 함수가 들어가야하며 위 함수가 정렬 기준이 됩니다
key값에 람다함수를 사용할 수도 있습니다
array = [('바나나', 2), ('사과', 3), ('키위', 1)]
def setting(data):
return data[1]
result = sorted(array, key=setting)
print(result)// [('키위', 1), ('바나나', 2), ('사과', 3)]
cf. 람다함수와 내림차순
람다함수를 사용해 tuple안의 1번째 idx를 기준으로 정렬했고, reverse를 사용해 내림차순으로 정렬되게 했습니다.
result = sorted([('홍길동', 35), ('이순신', 75), ('아무개', 50)], key = lambda x: x[1], reverse=True)
print(result) // [('이순신', 75), ('아무개', 50), ('홍길동', 35)]