파이썬 - 정렬(다중기준)

Eungho won·2022년 9월 20일
0
before = [(1, 2), (0, 1), (6, 1), (6, 2), (3, 0)]

# default는 오름차순
after = sorted(before)
# after = [(0, 1), (1, 2), (3, 0), (6, 1), (6, 2)]

# key 인자에 함수를 넘겨주면 해당 함수의 반환값을 비교하여 순서대로 정렬한다.
after = sorted(before, key = lambda x : x[0])
# after = [(0, 1), (1, 2), (3, 0), (6, 1), (6, 2)]



# 두 가지 조건으로 정렬할 시
# ex x[0] 오름차순, x[0]이 동일한 경우 x[1] 내림차순

# 방법 1 : 우선순위의 역순에따라 순차적으로 정렬한다
after_sec = sorted(before, key = lambda x : -x[1])
after_pri = sorted(after_sec, key = lambda x : x[0])
# after_sec = [(0, 1), (1, 2), (3, 0), (6, 2), (6, 1)]

# 방법 2 : 한 번에 정렬
after_once = sorted(before, key = lambda x : (x[0], -x[1]))
# after_once = [(0, 1), (1, 2), (3, 0), (6, 2), (6, 1)]
profile
kill to code

0개의 댓글

Powered by GraphCDN, the GraphQL CDN