[Python] sort, lambda

레몬커드요거트·2025년 1월 17일
post-thumbnail

Sort()

원본 자체를 정렬 시켜줌

sort_list = [1,5,23,5,2343,124] 
sort_list.sort() 
print(sort_list)

>>> [1, 5, 5, 23, 124, 2343]

Sorted()

원본을 변형시키지 않고, 새로운 list반환

sorted_list = [1,5,23,5,2343,124]
result = sorted(sorted_list)
print("result: ", result)
print("원본: ",sorted_list)

>>> result:  [1, 5, 5, 23, 124, 2343]
>>> 원본:  [1, 5, 23, 5, 2343, 124]

reverse=True

리스트를 내림차순으로 정렬

sort_list = [1,5,23,5,2343,124]
sort_list.sort(reverse=True)
print(sort_list)

>>> [2343, 124, 23, 5, 5, 1]

lambda

score_list = [
    ("A", 60),
    ("B", 80),
    ("C", 50),
    ("D", 70),
]
score_list.sort(key = lambda x : -x[1])
print(score_list)

>>> [('B', 80), ('D', 70), ('A', 60), ('C', 50)]

2차원 배열에서 두 번째 값으로 내림차순으로 정렬

  • x[1]- 를 붙여서 reverse=True와 같은 효과를 낼 수 있다
score_list = [
    ("A", 60),
    ("B", 80),
    ("C", 50),
    ("D", 70),
    ("E", 70),
]
score_list.sort(key = lambda x : (-x[1], x[0]))
print(score_list)

>>> [('B', 80), ('D', 70), ('E', 70), ('A', 60), ('C', 50)]

두번째 값을 우선적으로 내림차순으로 정렬 후에, 첫번째 값으로 오름차순 정렬

  • 점수가 같은 D, E의 경우에 D가 E보다 앞서므로 앞쪽에 정렬됨을 볼 수 있음
profile
비요뜨 최고~

0개의 댓글