sort(), sorted()

Hyun·2023년 7월 6일
0

파이썬

목록 보기
15/17
post-thumbnail

sort() & sorted()

  • sort() 와 sorted() 함수는 리스트를 오름차순/내림차순 으로 정렬하는 함수이다.
  • sort()는 자신 리스트를 직접 변경시키고, sorted() 는 자신 리스트는 그대로 두고 변경된 값을 반환한다.
  • 두 함수 모두 key 와 reverse 속성(인자)를 가진다.
    - reverse: 오름차순(False), 내림차순(True) 정렬을 선택한다
    - key: 해당 key 값을 기준으로 정렬된다. lambda 표현식을 이용하며 기본방법은 오름차순이다.
  • 딕셔너리에 사용하려면 딕셔너리를 리스트 형태로 변환한 다음 사용하면 된다.

sort()

리스트를 오름차순/내림차순으로 정렬해준다. 리스트 자체(자신)를 정렬하기 때문에 반환값은 None이다.

<방법>
리스트가 1차원인 경우

  • 리스트명.sort() : 오름 차순 정렬
  • 리스트명.sort(reverse=True) : 내림 차순 정렬

리스트가 2차원인 경우

  • 리스트명.sort(key=lambda x: x[0])
    : 원소의 첫번째 값을 기준으로 오름 차순 정렬
  • 리스트명.sort(key=lambda x: x[1])
    : 원소의 두번째 값을 기준으로 오름 차순 정렬
  • 리스트명.sort(key=lambda x: (x[0], x[1]))
    : 원소의 첫번째 값을 기준으로 오름 차순 정렬하되, 첫번째 값이 같은 경우 두번째 값에 대해 오름 차순 정렬

ex)

#------- reverse 인자 사용 설명--------#
arr = [4,6,1,9,3,5,10,0]

result = arr.sort()
print(arr) #[0,1,3,4,5,6,9,10]
print(result) #None
arr.sort(reverse=True)
print(arr) #[10,9,6,5,4,3,1,0]

#------- key 인자 사용 설명--------#
arr = [[3,6], [2,9], [1,7], [1,6]]

arr.sort(key=lambda x: x[0])
print(arr) # [[1, 7], [1, 6], [2, 9], [3, 6]]
arr.sort(key=lambda x: x[1])
print(arr) # [[1, 6], [3, 6], [1, 7], [2, 9]]
arr.sort(key=lambda x: (x[0],x[1]))
print(arr) # [[1, 6], [1, 7], [2, 9], [3, 6]]

arr = [(3,6), (2,9), (1,7), (1,6)]

arr.sort(key=lambda x: x[0])
print(arr) # [(1, 7), (1, 6), (2, 9), (3, 6)]
arr.sort(key=lambda x: x[1])
print(arr) # [(1, 6), (3, 6), (1, 7), (2, 9)]
arr.sort(key=lambda x: (x[0],x[1]))
print(arr) # [(1, 6), (1, 7), (2, 9), (3, 6)]

sorted()

리스트를 오름차순/내림차순으로 정렬해준다. 리스트 원본 값은 그대로이고 정렬된 리스트를 반환한다.

<방법>
리스트가 1차원인 경우

  • sorted(리스트명) : 오름 차순 정렬
  • sorted(리스트명, reverse=True) : 내림 차순 정렬

리스트가 2차원인 경우

  • sorted(리스트명, key=lambda x: x[0])
    : 원소의 첫번째 값을 기준으로 오름 차순 정렬
  • sorted(리스트명, key=lambda x: x[1])
    : 원소의 두번째 값을 기준으로 오름 차순 정렬
  • sorted(리스트명, key=lambda x: (x[0], x[1]))
    : 원소의 첫번째 값을 기준으로 오름 차순 정렬하되, 첫번째 값이 같은 경우 두번째 값에 대해 오름 차순 정렬

ex)

#------- reverse 인자 사용 설명--------#
arr = [4,6,1,9,3,5,10,0]

new_arr = sorted(arr)
print(new_arr) #[0,1,3,4,5,6,9,10]
print(arr) #[4,6,1,9,3,5,10,0]

new_arr = sorted(arr, reverse=True)
print(new_arr) #[10,9,6,5,4,3,1,0]
print(arr) #[4,6,1,9,3,5,10,0]

#------- key 인자 사용 설명--------#
arr = [[3,6], [2,9], [1,7], [1,6]]

result = sorted(arr, key=lambda x: x[0])
print(result) # [[1, 7], [1, 6], [2, 9], [3, 6]]
result = sorted(arr, key=lambda x: x[1])
print(result) # [[3, 6], [1, 6], [1, 7], [2, 9]]
result = sorted(arr, key=lambda x: (x[0],x[1]))
print(result) # [[1, 6], [1, 7], [2, 9], [3, 6]]

arr = [(3,6), (2,9), (1,7), (1,6)]

result = sorted(arr, key=lambda x: x[0])
print(result) # [(1, 7), (1, 6), (2, 9), (3, 6)]
result = sorted(arr, key=lambda x: x[1])
print(result) # [(3, 6), (1, 6), (1, 7), (2, 9)]
result = sorted(arr, key=lambda x: (x[0],x[1]))
print(result) # [(1, 6), (1, 7), (2, 9), (3, 6)]
profile
better than yesterday

0개의 댓글