반응형
sorted 와 sort
sorted와 sort의 차이점
- sorted : 기존 리스트는 건드리지 않고, 정렬된 새로운 리스트를 리턴
- sort : 아무것도 리턴하지 않고, 기존 리스트를 정렬
numbers = [20, 18, 2, 4, 6, 8, 25, 9] |
예를 들어, 리스트에는 위와 같이 숫자가 있다고 생각해보자.
sorted
#<INPUT> numbers1 = sorted(numbers) numbers2 = sorted(numbers, reverse=True) print(numbers) print(numbers1) print(numbers2) |
#<OUTPUT> [20, 18, 2, 4, 6, 8, 25, 9] [2, 4, 6, 8, 9, 18, 20, 25] [25, 20, 18, 9, 8, 6, 4, 2] |
- 첫번째 출력에서는 기존 numbers 를 출력하였을 때는 기존 값을 출력한다.
- 두번째 출력에서는 numbers를 sorted 시켜서 받은 값을 numbers1에 넣어 numbers1을 출력하는데, numbers1은 오름차순으로 정렬되었다.
- 세번째 출력에서는 numbers를 sorted 시키면서 파라미터 값으로 reverse=True 를 해줌으로써 역 정렬을 하여 내림차순으로 값을 받은 numbers2를 출력한다.
이렇게 보았을 때, sorted는 값을 리턴 받아서 사용하면서 기존의 리스트를 직접적으로 바꾸지 않는다.
sort
#<INPUT> print(numbers) numbers.sort() print(numbers) numbers.sort(reverse=True) print(numbers) |
#<OUTPUT> [20, 18, 2, 4, 6, 8, 25, 9] [2, 4, 6, 8, 9, 18, 20, 25] [25, 20, 18, 9, 8, 6, 4, 2] |
- 첫번째 출력에서는 기존의 리스트를 출력하여 준다.
- 두번째 출력에서는 numbers를 sort 메소드를 사용하여 정렬 후, 직접적으로 numbers 리스트 정렬을 해준다.
- 세번째 출력에서는 sorted 내에서 reverse 파라미터를 받듯이 sort 메소드 내의 파라미터 값을 받아 역정렬을 해준것을 출력하고 있다.
즉, sort 메소드를 사용하여 정렬하였을 때는 기존의 리스트를 직접적으로 바꾸어준다.
이렇게 sort와 sorted는 차이점이 있기 때문에 상황에 따라 다르게 사용하여야 한다.
반응형
'Python' 카테고리의 다른 글
[Python]모듈(Module) (0) | 2021.06.19 |
---|---|
[Python]에일리어싱(Aliasing) (0) | 2021.06.18 |
[Python]파이썬 스타일 가이드(PEP 8) (0) | 2021.06.16 |
[Python]옵셔널 파라미터(optional parameter) (0) | 2021.06.15 |
[Python]문자열 포맷팅을 하는 다양한 방식 (0) | 2021.06.14 |