[파이썬] lambda, sort - 다중 조건 정렬

sohee jung·2022년 9월 10일
0

[파이썬] 기초 문법

목록 보기
1/11
post-thumbnail

sort()

<list>.sort(key = <function>, reverse = <bool>)
  • 원본 자체를 수정하며, 반환값 X

sorted()

sorted( <list> , key = <function> , reverse = <bool>)
  • 기존의 리스트는 건드리지 않고 정렬된 새로운 리스트를 변환함
a = [10,2,3,1]
a.sort()
a.sort(reverse=True) #내림차순
b = [10,2,3,1]
c = sorted(b)
d = sorted(b,reverse=True)
	print(b) # [10,2,3,1]
    print(c) # [1,2,3,,10]
    print(d) #[10,3,2,1]

lambda

  • 익명 함수
array = (('b', 1, '나'), ('c', 2, '라'), ('a', 3, '다'), ('a', 7, '가'), ('c', 3, '가'))

print(sorted(array, key=lambda x: (x[0], x[1]))) # 0번, 1번 키(알파벳, 숫자)
print(sorted(array, key=lambda x: (x[0], x[2]))) # 0번, 2번 키(알파벳, 한글)

# 출력
# [('a', 3, '다'), ('a', 7, '가'), ('b', 1, '나'), ('c', 2, '라'), ('c', 3, '가')]
# [('a', 7, '가'), ('a', 3, '다'), ('b', 1, '나'), ('c', 3, '가'), ('c', 2, '라')]
  • 내림차순으로 정렬하고 싶으면 - 붙여주면 됨
a = [(1, 3), (0, 3), (1, 4), (1, 5), (0, 1), (2, 4)]
b = sorted(e, key = lambda x : (x[0], -x[1]))
# b = [(0, 3), (0, 1), (1, 5), (1, 4), (1, 3), (2, 4)]
profile
짱이 될거야

0개의 댓글