Ssa!
이것이 코딩테스트다! 리스트 자료형 본문
리스트 자료형
- 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형이다.
- 리스트는 대괄호([])안에 원소를 넣어 초기화하며, 쉼표(,)로 원소를 구분한다
- 비어 있는 리스트를 선언하고자 할 때는 list()혹은 간단히 []를 이용할 수 있다
- 리스트의 원소에 접근할 때는 인덱스(index)값을 괄호에 넣는다
리스트의 인덱싱과 슬라이싱
- 인덱스 값을 입력하여 리스트의 특정한 원소에 접근하는 것을 인덱싱이라고 한다
- 파이썬의 인덱스 값은 양의 정수와 음의 정수를 모두 사용한다.
- 음의 정수를 넣으면 원소를 거꾸로 탐색한다
- 리스트에서 연속적인 위치를 갖는 원소들을 가져와야 할 때는 슬라이싱을 이용한다.
- 대괄호 안에 콜론(:)을 넣어서 시작 인덱스와 끝 인덱스를 설정할 수 있다
- 끝 인덱스는 실제 인덱스보다 1을 더 크게 설정한다.
리스트 컴프리헨션
- 리스트를 초기화하는 방법 중 하나
- 대괄호 안에 조건문과 반목문을 적용하여 리스트를 초기화 할 수 있다.
array = [i for i in range(10)]
array = [i for i in range(20 if i % 2 == 1] # 홀수
array = [i for i in range(20 if i % 2 == 0] # 짝수
- 리스트 컴프리헨션은 2차원 리스트를 초기화할 때 효과적으로 사용될 수 있다.
- 특히 NxM 크기의 2차원 리스트를 한 번에 초기화 해야 할 때 매우 유용하다
좋은 예시: array = [[0] * m for _ in range(n)]
- 만약 2차원 리스트를 초기화할 때 다음과 같이 작성하면 예기치 않은 결과가 나올 수 있다.
잘못된 예시: array = [[0] * m] n
위 코드는 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식된다.
언더바는 언제 사용하나요?
- 파이썬에서는 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 언더바(_)를 자주 사용한다.
리스트 관련 기타 메서드
함수명 사용법 설명 시간복잡도
| append() | 변수명.append() | 리스트에 원소를 하나 삽입할 때 사용한다. | O(1) |
| sort() | 변수명.sort() | 기본 정렬 기능으로 오름차순으로 정렬헌더 | O(NlogN) |
| sort() | 변수명.sort(reverse = True) | 내림차순으로 정렬한다 | O(NlogN) |
| reverse() | 변수명.reverse() | 리스트의 원소의 순서를 모두 뒤집어 놓는다 | O(N) |
| insert() | insert(삽입할 위치 인덱스, 삽입할 값) | 특정한 인덱스 위치에 원소를 삽입할 때 사용한다 | O(N) |
| count() | 변수명.count(특정 값) | 라스트에서 특정한 값을 가지는 데이터의 개수를 셀 때 사용한다 | O(N) |
| remove() | 변수명.remove(특정 값) | 특정한 값을 갖는 원소를 제거하는데, 값을 가진 원소가 여러개면 하나만 제거한다. | O(N) |
리스트에서 특정 값을 가지는 원소를 모두 제거하기
https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC
'CS > 알고리즘' 카테고리의 다른 글
| 이것이 코딩테스트다! 기본 입출력 (0) | 2022.09.15 |
|---|---|
| 이것이 코딩테스트다! 사전, 집합 자료형 (0) | 2022.09.15 |
| 이것이 코딩테스트다! 문자열,튜플 자료형 (0) | 2022.09.15 |
| 이것이 코딩테스트다! 수 자료형 (0) | 2022.09.15 |
| 이것이 코딩테스트다! 기초 개념 (0) | 2022.09.15 |