파이썬에서 리스트를 정렬 시, sort(), sorted()를 사용할 수 있다.
하지만 두 방식에는 차이가 존재하고, 이를 알아보고자 한다.
a = [1, 5, 3, 8, 4]
a.sort()
print(a) # [1, 3, 4, 5, 8]
# 결과가 정렬된 형태로 변경되어 저장
A = [5, 4, 5, 9, 1]
A_sorted = A.sort()
print(A_sorted)
# None
b = [1, 5, 3, 8, 4]
print(sorted(b)) # [1, 3, 4, 5, 8]
print(b) # [1, 5, 3, 8, 4]
# 리스트 b를 정렬한 리스트 반환
sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
# [1, 2, 3, 4, 5]
# sort()
c = [1, 5, 3, 8, 4]
c.sort()
print(c)# [1, 3, 4, 5, 8]
c.sort(reverse=True)
print(c) # [8, 5, 4, 3, 1]
# sorted()
A = [1,3,5,2,1,6]
sorted_A = sorted(A, reverse=True)
print(sorted_A)
# [6,5,3,2,1,1]
list = [[1,2], [1,3],[0,5],[5,1],[4,3]]
print(sorted(list, key = lambda x:x[0]))
# [[0, 5], [1, 2], [1, 3], [4, 3], [5, 1]]
print(sorted(list, key = lambda x:x[0], reverse = True))
# [[5, 1], [4, 3], [1, 2], [1, 3], [0, 5]]
list = [[1,2], [1,3],[0,5],[5,1],[4,3]]
print(sorted(list, key = lambda x:x[1]))
# [[5, 1], [1, 2], [1, 3], [4, 3], [0, 5]]
print(sorted(list, key = lambda x:x[1], reverse = True))
# [[0, 5], [1, 3], [4, 3], [1, 2], [5, 1]]
list.sort(key = lambda x: (x[1], x[0])) # 두번째 값이 같을 경우 첫번째 값을 기준으로 오름차순
list #[[5, 1], [1, 2], [1, 3], [4, 3], [0, 5]]
sorted(list, key=lambda x : (-x[0], x[1])) # 첫번째 값은 내림차순, 두번째 값은 오름차순
#[[5, 1], [4, 3], [1, 2], [1, 3], [0, 5]]
sorted(list, key=lambda x:-x[0]) # 첫번째 값을 오름차순
#[[5, 1], [4, 3], [1, 2], [1, 3], [0, 5]]