1. 리스트(List)란?
Python에서 리스트(List)는 여러 개의 데이터를 순차적으로 저장할 수 있는 데이터 구조입니다.
리스트는 다양한 데이터 타입을 포함할 수 있으며, 인덱스를 사용하여 요소를 접근하고 조작할 수 있습니다.
✅ 리스트의 주요 특징
• 순서가 있는(Ordered) 데이터 구조
• 다양한 데이터 타입을 저장 가능
• 변경 가능(Mutable) → 요소 추가, 수정, 삭제 가능
• 반복문을 활용한 데이터 조작 가능
2. 리스트 생성 방법
리스트는 대괄호 []를 사용하여 생성합니다.
㉮ 기본적인 리스트 생성
numbers = [1, 2, 3, 4, 5]
fruits = ["사과", "바나나", "체리"]
mixed_list = [10, "Python", 3.14, True] # 다양한 데이터 타입 포함 가능
✅ 각 요소는 쉼표(,)로 구분되며, 문자열, 숫자, 불리언 등 여러 데이터 타입을 포함할 수 있음.
3. 리스트의 인덱싱과 슬라이싱
㉮ 인덱싱 (indexing)
인덱싱을 사용하면 리스트의 특정 요소를 가져올 수 있습니다.
Python의 인덱스는 0부터 시작하며, 음수 인덱스를 사용하면 뒤에서부터 요소에 접근할 수 있습니다.
fruits = ["사과", "바나나", "체리"]
print(fruits[0]) # 첫 번째 요소: 사과
print(fruits[-1]) # 마지막 요소: 체리
출력결과
사과
체리
✅ 양수 인덱스는 앞에서부터 접근, 음수 인덱스는 뒤에서부터 접근.
㉯ 슬라이싱(Slicing)
슬라이싱을 사용하면 리스트에서 특정 범위의 요소를 추출할 수 있습니다.
numbers = [10, 20, 30, 40, 50]
print(numbers[1:4]) # 1번 인덱스부터 3번 인덱스까지 추출
print(numbers[:3]) # 처음부터 3번 인덱스까지 추출
print(numbers[2:]) # 2번 인덱스부터 끝까지 추출
print(numbers[::-1]) # 리스트를 역순으로 출력
출력결과
[20, 30, 40]
[10, 20, 30]
[30, 40, 50]
[50, 40, 30, 20, 10]
✅ 슬라이싱을 활용하면 특정 부분을 쉽게 추출하거나, 리스트를 뒤집을 수 있음.
4. 빈 리스트 생성 및 요소 추가
㉮ 빈 리스트 생성
빈 리스트를 만들고 데이터를 동적으로 추가할 수도 있습니다.
empty_list = [] # 빈 리스트 생성
empty_list2 = list() # list() 함수 사용
㉯ 리스트에 요소 추가 (append(), insert())
Python에서는 append()와 insert() 메서드를 사용하여 리스트에 요소를 추가할 수 있습니다.
(1) append() - 리스트 끝에 요소 추가
numbers = [1, 2, 3]
numbers.append(4)
print(numbers) # [1, 2, 3, 4]
✅ 항상 리스트의 끝에 새로운 요소가 추가됨.
(2) insert() - 특정 위치에 요소 추가
numbers.insert(1, 100) # 인덱스 1 위치에 100 추가
print(numbers) # [1, 100, 2, 3, 4]
✅ 리스트의 특정 위치에 요소를 삽입할 때 사용.
5 리스트 연산
㉮ 리스트 연결 (+)
리스트를 연결할 때 + 연산자를 사용할 수 있습니다.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list) # [1, 2, 3, 4, 5, 6]
✅ 기존 리스트를 변경하지 않고 새로운 리스트를 생성.
㉯ 리스트 반복 (*)
numbers = [1, 2, 3]
print(numbers * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
✅ 리스트를 여러 번 반복하여 새로운 리스트를 생성.
6. 리스트 길이 확인 (len())
리스트의 요소 개수를 확인하려면 len() 함수를 사용합니다.
fruits = ["사과", "바나나", "체리"]
print(len(fruits)) # 3
✅ 리스트의 길이를 알고 싶을 때 유용함.
7. 리스트 요소 수정 및 삭제
㉮ 요소 수정
fruits = ["사과", "바나나", "체리"]
fruits[1] = "오렌지" # 바나나 → 오렌지로 변경
print(fruits) # ['사과', '오렌지', '체리']
✅ 리스트는 변경 가능한(mutable) 자료형이므로 요소를 수정할 수 있음.
㉯ 요소 삭제 (remove(), pop(), del)
(1) remove() - 특정 값을 찾아 삭제
numbers = [10, 20, 30, 40]
numbers.remove(20) # 값 20을 찾아 삭제
print(numbers) # [10, 30, 40]
✅ 첫 번째로 일치하는 값만 삭제.
(2) pop() - 특정 인덱스의 요소를 삭제하고 반환
numbers = [10, 20, 30, 40]
deleted_value = numbers.pop(1) # 인덱스 1의 요소 삭제
print(numbers) # [10, 30, 40]
print(deleted_value) # 20
✅ 삭제된 값을 반환할 수 있어 유용함.
(3) del - 특정 인덱스의 요소 삭제
numbers = [10, 20, 30, 40]
del numbers[2] # 인덱스 2의 요소 삭제
print(numbers) # [10, 20, 40]
✅ del 키워드를 사용하면 특정 요소를 삭제할 수 있음.
8. 리스트 복사 (copy())
리스트를 복사할 때 단순 대입(=)을 사용하면 원본과 동일한 객체를 참조하게 됩니다.
따라서, 별도의 리스트로 복사하려면 copy()를 사용해야 합니다.
original = [1, 2, 3]
copy_list = original.copy()
copy_list.append(4)
print(original) # [1, 2, 3]
print(copy_list) # [1, 2, 3, 4]
✅ 원본 리스트를 변경하지 않고 새로운 리스트를 생성.
9. 요약
• 리스트(List)는 순서가 있는 변경 가능한 데이터 구조.
• 인덱싱과 슬라이싱을 사용하여 요소를 조회하거나 수정 가능.
• append(), insert()를 사용하여 요소를 추가 가능.
• remove(), pop(), del을 사용하여 요소를 삭제 가능.
• 리스트는 +, * 연산자를 사용하여 확장 가능.
• 리스트 복사는 copy()를 사용해야 원본과 독립적인 새로운 리스트를 생성 가능.
'코딩교육 > Python 초등교육에서 전문가까지' 카테고리의 다른 글
2단계 : 5. 리스트와 반복문 (리스트와 반복문 - for 문을 활용한 리스트 순회) (0) | 2025.03.24 |
---|---|
2단계 : 5. 리스트와 반복문 (리스트와 관련된 주요 메서드 - append(), remove(), sort() 등) (0) | 2025.03.23 |
2단계 : 4. 함수 (실행 시간 측정, 데이터 처리 및 알고리즘 최적화) (0) | 2025.03.21 |
2단계 : 4. 함수 (함수의 가독성과 모듈화 - 왜 함수를 사용하는가 ?) (0) | 2025.03.20 |
2단계 : 4. 함수 (기본 매개변수와 키워드 매개변수) (0) | 2025.03.19 |