리스트(List)
1. 리스트 선언
- 리스트(List) : 여러 가지 자료를 저장할 수 있는 자료형
- 요소(Element) : 리스트 내부에 넣는 자료 및 내용
- 인덱스(Index) : 리스트 내부에 값의 위치
1.1 기본 표현
- 대괄호([ ]) 안에 쉼표(,)로 구분한 값을 나열하여 선언
- list() 혹은 [ ]로 빈 리스트 생성 가능
- len()함수로 요소 개수 확인 가능
- 요소의 자료형이 동일하지 않아도 사용 가능
- 리스트를 요소로 가지는 리스트 생성 가능
# 기본 표현
# 빈 리스트 생성
my_list1 = []
my_list2 = list()
# 확인
print(my_list1) # []
print(my_list2) # []
# 리스트 생성
my_list3 = [85, 90, 100, 80, 75]
# 확인
print(my_list3) # [85, 90, 100, 80, 75]
# 요소 개수 확인
print(len(my_list3)) # 5
# 다양한 자료형 리스트 생성 - 숫자형, 논리형, 문자형, 리스트
my_list4 = [85, 100, True, False, "문자열", [1, 2, 3]]
# 확인
print(my_list4) # [85, 100, True, False, '문자열', [1, 2, 3]]
1.2 range() 함수로 리스트 선언
- 연속된 정수를 리스트로 만들 때 함께 사용
- range(n) : 0부터 n-1까지의 정수
- range(m, n) : m부터 n-1까지의 정수
- range(m, n, x) : m부터 n-1까지 x만큼 증가하는 정수
# range() 함수 사용
# range(n)
num1 = list(range(5))
# 확인
print(num1) # [0, 1, 2, 3, 4]
# range(m, n)
num2 = list(range(-5, 5))
# 확인
print(num2) # [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
# range(m, n, x)
num3 = list(range(0, 11, 2))
# 확인
print(num3) # [0, 2, 4, 6, 8, 10]
2. 리스트 연산
- 리스트 + 리스트 = 리스트 결합
- 리스트 * 정수 = 리스트 반복
- 리스트에 빼기와 나누기 연산은 불가능
- 리스트에 음수나 0을 곱하면 리스트 요소 제거
# 리스트 선언
my_list1 = [85, 90, 100, 80, 75]
my_list2 = [70, 95, 90]
# 리스트 결합
my_list3 = my_list1 + my_list2
# 확인
print(my_list3) # [85, 90, 100, 80, 75, 70, 95, 90]
# 리스트 반복
my_list4 = my_list2 * 2
# 확인
print(my_list4) # [70, 95, 90, 70, 95, 90]
# 리스트 제거 - 빈 리스트 생성
my_list5 = my_list4 * 0
# 확인
print(my_list5) # []
3. 리스트 표현
3.1 리스트 인덱싱(Indexing)
- 인덱스를 사용해 리스트 안에서 특정 요소를 찾는 과정
- 대괄호 안에 정수형 인덱스를 지정하여 원하는 위치의 요소 확인
- 인덱스 값은 0부터 시작
- 리스트를 요소로 가지는 리스트 인덱싱 가능
A | B | C | [1, 2, 3] | 4 | 5 | True | False | |
순방향 인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
역방향 인덱스 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
# 리스트 인덱싱
# 리스트 선언
my_list = ["A", "B", "C", [1, 2, 3], 4, 5, True, False]
print(my_list[0]) # A
print(my_list[5]) # 5
print(my_list[-1]) # False
print(my_list[-4]) # 4
print(my_list[3][2]) # 3
3.2 리스트 슬라이싱(Slicing)
- 인덱스를 사용해 리스트 안에서 특정 범위의 요소를 찾는 과정
- 대괄호 안에 정수형 인덱스로 범위를 지정하여 요소 확인
- [m, n] : 인덱스 m부터 n-1까지의 요소 출력
# 리스트 슬라이싱
# 리스트 선언
my_list = ["A", "B", "C", [1, 2, 3], 4, 5, True, False]
print(my_list[0:3]) # ['A', 'B', 'C']
print(my_list[2:6]) # ['C', [1, 2, 3], 4, 5]
print(my_list[:4]) # ['A', 'B', 'C', [1, 2, 3]]
print(my_list[2:]) # ['C', [1, 2, 3], 4, 5, True, False]
print(my_list[:]) # ['A', 'B', 'C', [1, 2, 3], 4, 5, True, False]
print(my_list[3][:2]) # [1, 2]
4. 리스트 요소 변경, 추가, 제거
4.1 리스트 요소 변경
- 인덱싱 혹은 슬라이싱 결과에 대한 요소 값 변경
- 범위를 벗어나는 요소에 대한 값은 변경이 아닌 추가
# 리스트 요소 변경
# 리스트 선언
num = list(range(10))
# 확인
print(num) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 인덱싱 요소 값 변경
num[5] = 15
# 확인
print(num) # [0, 1, 2, 3, 4, 15, 6, 7, 8, 9]
# 슬라이싱 요소 값 변경
num[3:6] = [23, 24, 25]
# 확인
print(num) # [0, 1, 2, 23, 24, 25, 6, 7, 8, 9]
# 범위 밖 요소 값 변경
num[8:] = [18, 19, 20, 21]
print(num) # [0, 1, 2, 23, 24, 25, 6, 7, 18, 19, 20, 21]
4.2 리스트 요소 추가
- append(x) : 리스트 맨 뒤에 x 요소 추가
- insert(x, y) : x 위치에 y 요소 추가
- extend(list) : 리스트 뒤에 새로운 리스트 요소 추가
# 리스트 요소 추가
# 리스트 선언
num = list(range(5))
# 확인
print(num) # [0, 1, 2, 3, 4]
# 맨 뒤에 요소 추가
num.append(5)
# 확인
print(num) # [0, 1, 2, 3, 4, 5]
# 리스트 중간에 요소 추가
num.insert(2, 12)
# 확인
print(num) # [0, 1, 12, 2, 3, 4, 5]
# 새로운 리스트 추가
new_num = [16, 17, 18, 19]
num.extend(new_num)
# 확인
print(num) # [0, 1, 12, 2, 3, 4, 5, 16, 17, 18, 19]
4.3 리스트 요소 제거
- del : 리스트의 특정 인덱스에 있는 요소 제거
- pop(x) : 특정 인덱스에 있는 요소 제거
매개변수, x를 입력하지 않으면 마지막요소 제거
- remove() : 리스트의 특정 값을 제거
- clear() : 리스트의 모든 요소 제거
# 리스트 요소 제거
# 리스트 선언
num = list(range(10))
# 확인
print(num) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 특정 인덱스 요소 제거
del num[3]
# 확인
print(num) # [0, 1, 2, 4, 5, 6, 7, 8, 9]
# 특정 범위 요소 제거
del num[6:8]
# 확인
print(num) # [0, 1, 2, 4, 5, 6, 9]
# 특정 인덱스 요소 제거
num.pop()
# 확인
print(num) # [0, 1, 2, 4, 5, 6]
# 특정 값 제거
num.remove(4)
# 확인
print(num) # [0, 1, 2, 5, 6]
# 전부 제거
num.clear()
# 확인
print(num) # []
5. 리스트 관련 메소드
- count() : 리스트의 요소 개수 확인
- index() : 리스트의 요소가 처음 나타나는 인덱스 확인
- reverse() : 리스트의 요소 순서 변경
- sort() : 리스트의 요소를 오름차순으로 정렬
# 리스트 선언
my_list = [85, 90, 100, 80, 75, 100, 80, 95, 80]
# 리스트 요소 개수 확인
print(my_list.count(80)) # 3
# 리스트 요소가 처음 나타나는 인덱스 확인
print(my_list.index(100)) # 2
# 순서 변경
my_list.reverse()
# 확인
print(my_list) # [80, 95, 80, 100, 75, 80, 100, 90, 85]
# 오름차순으로 정렬
my_list.sort()
# 확인
print(my_list) # [75, 80, 80, 80, 85, 90, 95, 100, 100]
'STUDY > PYTHON' 카테고리의 다른 글
[Python] 5. 딕셔너리 (0) | 2024.11.10 |
---|---|
[Python] 4. 튜플 & 집합 (3) | 2024.11.09 |
[Python] 2. 문자형 (0) | 2024.09.21 |
[Python] 1. 연산자와 기본 자료형(2) (2) | 2024.09.16 |
[Python] 1. 연산자와 기본 자료형(1) (1) | 2024.09.16 |