일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ARP
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- 기억장치
- icmp
- 노마드코더
- 데이터 통신과 컴퓨터 네트워크
- data type
- IT5분잡학사전
- 자료형
- 이것이 취업을 위한 코딩 테스트다
- DP
- 북클럽
- 컴퓨터네트워크
- GIT
- RARP
- 컴퓨터 동작방식
- CS
- 노개북
- 쿠키
- sort()
- 이코테
- 데이터통신
- 시스템 소프트웨어
- 파이썬 자료형
- 라우팅
- OSI7계층모델
- 파이썬 연산자
- 파이썬 정렬
- 리스트
- 이것이 취업을 위한 코딩테스트다
- Today
- Total
뚝딱햄 탈출기
[Python] 리스트 정렬, 역순 정렬 : sort()와 sorted(), reverse()와 reversed(), 슬라이싱, range() 본문
[Python] 리스트 정렬, 역순 정렬 : sort()와 sorted(), reverse()와 reversed(), 슬라이싱, range()
hyrmzz1 2023. 10. 4. 22:09sort()와 sorted()는 정렬 기능을 가진 함수이고, reverse()와 reversed()는 역순 정렬 기능을 가진 함수이다.
sort()
sort() 함수는 리스트의 원소들을 오름차순으로 정렬해주는 함수로, 리스트명.sort() 형식으로 작성한다.
리스트의 원소들을 내림차순으로 정렬하고 싶을 경우 리스트명.sort(reverse = True) 형식으로 작성하면 된다.
sort() 함수는 리스트형의 메소드로, 리스트 원본값을 직접 수정한다. (리스트를 정렬된 상태로 변경한다.)
sorted()
sorted() 함수는 sorted(리스트명) 형식으로 작성하며, 오름차순 정렬 값을 반환한다.
내림차순 정렬 값을 얻으려면 sorted(리스트명, reverse = True) 형식으로 작성하면 된다.
sorted() 함수는 내장함수로 정렬 값을 반환하나, 리스트 원본 값은 그대로이다. (기존의 리스트를 변경하는 것이 아닌 정렬의 새로운 리스트를 반환한다. iterator의 요소를 정렬하여 반환한다.)
리스트 뿐 아니라 사전, 튜플 등 다른 iterable 객체도 받을 수 있다.
sort(), sorted() 예제
아래의 중앙값을 구하는 문제를 풀 때 리스트를 오름차순으로 정렬해야 하는데 이 때 sort()와 sorted()를 사용해 풀이할 수 있다.
sort() 사용
def solution(array):
array.sort() # sort() : 오름차순 정렬
return array[len(array) // 2]
array.sort() 이후에 array를 return 해보면 원소들이 오름차순으로 정렬되어 반환된다.
리스트 원본 값이 정렬된 상태로 변경되었음을 알 수 있다.
sorted() 사용
def solution(array):
return sorted(array)[len(array) // 2]
sorted()를 사용하면 []에 인덱스를 작성할 수 있어 정렬 후 원소에 접근하는 걸 코드 한 줄로 해결할 수 있다!
sorted(array) 이후에 array를 return 해보면 정렬되지 않은 상태의 원래의 리스트가 반환된다.
reverse()
reverse() 함수는 리스트의 원소들을 역순으로 정렬해주는 함수로, 리스트명.reverse() 형식으로 작성한다.
sort() 함수와 마찬가지로, reverse() 함수는 리스트형의 메소드이다.
리스트 원본값을 직접 수정한다. (리스트를 역순 정렬된 상태로 변경한다.)
reversed()
reversed() 함수는 reversed(리스트명) 형식으로 작성하며, 역순 정렬 값을 반환한다.
sorted() 함수와 마찬가지로, reversed() 함수는 내장함수이다.
역순 정렬 값을 반환하나,리스트 원본 값은 그대로이다. (기존의 리스트를 변경하는 것이 아닌 역순 정렬의 새로운 리스트를 반환한다. iterator의 요소를 역순으로 정렬하여 반환한다.)
reverse(), reversed() 예제
reverse() 사용
def solution(num_list):
num_list.reverse()
return num_list
num_list.reverse() 이후에 num_list를 return 해도 원소들이 역순으로 정렬되어 반환된다.
리스트 원본 값이 정렬된 상태로 변경되었음을 알 수 있다.
reversed() 사용
# 리스트 컴프리헨션 사용
def solution(num_list):
return [i for i in reversed(num_list)]
# 리스트 컴프리헨션 사용하지 않는다면
def solution(num_list):
answer = []
for i in reversed(num_list):
answer.append(i)
return answer
reversed(num_list) 이후에 num_list를 return 해보면 역순 정렬되지 않은 상태의 원래의 리스트가 반환된다.
def solution(num_list):
return list(reversed(num_list))
reversed() 함수는 리스트 메서드가 아닌 파이썬 내장함수이기 때문에 reversed(num_list) 로 반환하면 에러가 발생하므로, list() 함수를 이용해 리스트로 변환해준다.
reverse()와 reversed() 함수를 사용하지 않고 리스트를 역순 정렬할 수도 있다.
슬라이싱을 이용한 역순 정렬
a[start : stop : stride]와 같이 슬라이싱할 때, stride를 통해 슬라이스의 간격을 설정한다. (생략시 1)
stride가 음의 정수라면 역방향으로 슬라이싱 하기 때문에, 이를 이용해 리스트를 역순으로 정렬할 수도 있다.
def solution(num_list):
return num_list[::-1]
range() 이용한 역순 정렬
range() 함수는 for문에서 수를 차례대로 나열할 때 주로 사용되는 함수이다.
주로 range(시작 값, 끝 값 + 1) 형태로 쓰이지만, range(시작 값, 끝 값 + 1, step)의 형태로 작성할 경우 step은 슬라이싱의 stride와 같은 역할을 수행한다.
step에 음수를 지정할 수도 있다.
def solution(num_list):
answer = []
for i in range(len(num_list)-1, -1, -1):
answer.append(num_list[i])
return answer
중앙값 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/120811?language=python3
배열 뒤집기
https://school.programmers.co.kr/learn/courses/30/lessons/120821
슬라이싱과 range() 를 이용한 방법은 문자열을 뒤집을 때도 사용할 수 있다 !
문자열 뒤집기
https://school.programmers.co.kr/learn/courses/30/lessons/120822
'Programming language > Python' 카테고리의 다른 글
[Python] 문자 ↔ ASCII(아스키) 코드 변환 (1) | 2023.10.14 |
---|---|
[Python] 주요 라이브러리의 문법과 유의점 : 내장 함수, itertools, heapq, bisect, collections, math (3) | 2023.10.07 |
[Python] 입출력 : input(), sys.stdin.readline(), print(), 줄 바꿈 (0) | 2023.10.03 |
[Python] 함수 : 함수의 구조 def, global, 람다 표현식 lambda express, map() (1) | 2023.10.03 |
[Python] 연산자 : 비교 연산자, 논리 연산자 (0) | 2023.10.03 |