key 인자에 함수를 넘겨주면 해당 함수의 반환값을 비교하며 순서대로 정렬한다.
[int, str] 에서 int를 기준으로 정렬하고 싶을 경우
test = [[10, "a"], [5, "d"], [30, "f"], [1, "b"]]
test.sort(key=lambda x: x[0])
print(test)
-------------------------------------------------------------------------
[[1, 'b'], [5, 'd'], [10, 'a'], [30, 'f']]
[int, str] 에서 str을 기준으로 정렬하고 싶을 경우
test = [[10, "a"], [5, "d"], [30, "f"], [1, "b"]]
test.sort(key=lambda x: x[1])
print(test)
-------------------------------------------------------------------------
[[10, 'a'], [1, 'b'], [5, 'd'], [30, 'f']]
다중 정렬 조건일경우
test = [("A", 18, 30) , ("F", 24, 100), ("T", 24, 2000),("Q",24,5000), ("B", 70, 5)]
test.sort(key = lambda x: (x[1], -x[2])) # x[1]이 x[2]보다 우선순위
print(array)
---------------------------------------------------------------------
[('A', 18, 30), ('Q', 24, 5000), ('T', 24, 2000), ('F', 24, 100), ('B', 70, 5)]
test = [("A", 18, 30) , ("F", 24, 100), ("T", 24, 2000),("Q",24,5000), ("B", 70, 5)]
test.sort(key = lambda x: (-x[2], x[1])) #x[2]이 x[1]보다 우선순위
print(array)
---------------------------------------------------------------------
[('Q', 24, 5000), ('T', 24, 2000), ('F', 24, 100), ('A', 18, 30), ('B', 70, 5)]