728x90
728x90
1. 리스트 자료형
대괄호 [] 안에 원소를 넣어 초기화하며, 쉼표, 로 원소를 구분함
인덱스는 0부터 시작함
a = [1, 2, 3, 4, 5]
# 출력값 : 5
print(a[4])
# 빈 리스트 선언 방법 1
a = list()
# 빈 리스트 선언 방법 2
a = []
# 리스트의 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화
# 출력값 : [0, 0, 0, 0, 0]
n = 5
a = [0] * n
print(a)
2. 인덱싱과 슬라이싱
인덱싱 : 인덱스값을 입력하여 리스트의 특정한 원소에 접근하는 것
# 뒤에서 첫 번째 원소 출력, 출력값 : 5
a = [1, 2, 3, 4, 5]
print(a[-1])
# 두 번째 원소 값 변경, 출력값 : [1, 3, 3, 4, 5]
a[1] = 3
print(a)
슬라이싱 : 연속적인 위치를 갖는 원소들을 가져올 때 사용하는 것
a[시작 인덱스 : 끝 인덱스 -1]
# 출력값 : [1, 2]
a = [1, 2, 3, 4, 5]
print(a[0 : 1])
3. 리스트 컴프리헨션
리스트를 초기화하는 방법 중 하나, 한 줄의 소스코드로 초기화할 수 있어 매우 간편함
2차원 리스트를 초기화할 때 매우 유용함
# 0부터 10까지의 수 중에서 홀수만 포함하는 리스트
# 출력값 : [1, 3, 5, 7, 9]
a = [i for i in range(11) if i % 2 == 1]
print(a)
# 1부터 9까지의 수의 제곱 값을 포함하는 리스트
# 출력값 : [1, 4 ,9, 16, 25, 36, 49, 64, 81]
a = [i * i for i in range(10)]
print(a)
# N * M 크기의 2차원 리스트 초기화
# 출력값 : [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
n = 3
m = 4
a = [[0] * m for _ in range(n)]
print(a)
특정 크기의 2차원 리스트를 초기화할 때는 반드시 리스트 컴프리헨션을 사용해야 함
아래와 같이 a[1][1]의 값만 5로 변경하고자 한 건데, 3개의 리스트의 인덱스 1번 값이 전부 5로 바뀌었다. 이는 내부적으로 포함된 3개의 리스트가 모두 동일한 객체에 대한 3개의 레퍼런스로 인식되기 때문이다.
따라서, 특정한 크기를 가지는 2차원 리스트 초기화 시, 리스트 컴프리헨션을 이용해야 한다.
# N * M 크기의 2차원 리스트 초기화 (잘못된 방식)
# 출력값 : [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
n = 3
m = 4
a = [[0] * m] * n
print(a)
# 출력값 : [[0, 5, 0, 0], [0, 5, 0, 0], [0, 5, 0, 0]]
a[1][1] = 5
print(a)
4. 리스트 관련 메서드
메소드명 | 사용법 | 설명 | 시간 복잡도 |
append() | 변수명.append() | 리스트에 원소를 하나 삽입 시 사용 | O(1) |
sort() | 변수명.sort(), 변수명.sort(reverse = True) | 기본 정렬 기능으로 오름차순으로 정렬함 | O(NlogN) |
reverse() | 변수명.reverse() | 리스트 원소의 순서를 모두 뒤집음 | O(N) |
insert() | 변수명.insert(삽입할 위치 인덱스, 삽입할 값) | 특정한 인덱스 위치에 원소 삽입 시 사용 | O(N) |
count() | 변수명.count(특정 값) | 특정한 값을 가지는 데이터의 개수를 셀 때 사용 | O(N) |
remove() | 변수명.remove(특정 값) | 특정한 값을 갖는 원소를 제거하는데, 값을 가진 원소가 여러 개면 하나만 제거함 | O(N) |
# 기본 리스트
a = [1, 4, 3]
# 원소 삽입, 출력값 : [1, 4, 3, 2]
a.append(2)
# 오름차순 정렬, 출력값 : [1, 2, 3, 4]
a.sort()
# 특정 인덱스에 데이터 추가, 출력값 : [1, 2, 3, 3, 4]
a.insert(2, 3)
# 특정 값인 데이터 개수 세기, 출력값 : 2
a.count(3)
# 특정 값 데이터 삭제, 출력값 : [2, 3, 3, 4]
a.remove(1)
# 리스트 원소 뒤집기, 출력값 : [4, 3, 3, 2]
a.reverse()
특정 값의 원소를 모두 제거하는 방법
a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3, 5}
# remove_set에 포함되지 않은 값만 저장
# 출력값 : [1, 2, 4]
result = [i for i in a if i not in remove_set]
print(result)
728x90
728x90
'Study > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 07. 조건문 (0) | 2023.05.11 |
---|---|
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 06. 입출력 (0) | 2023.05.11 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 05. 사전, 집합 자료형 (1) | 2023.05.11 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 04. 문자열, 튜플 자료형 (0) | 2023.05.11 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 02. 자료형 (0) | 2023.05.11 |