리스트와 딕셔너리
리스트(List)
- 정의: 순서가 있는 값들의 변경 가능한(mutable) 모임
- 특징:
- 다양한 데이터 타입(숫자, 문자열, 다른 리스트 등) 함께 저장 가능
- 요소들이 순서대로 저장되며, 이 순서 유지
- 요소의 추가, 삭제, 수정 자유
- 예시:
my_list = [1, "hello", 3.14, True, [10, 20]]
리스트 생성 방법
- 대괄호
[]사용: 가장 일반적인 방법empty_list = [](빈 리스트)numbers = [1, 2, 3, 4, 5]mixed_list = [10, "Python", 3.0]
list()함수 사용: 다른 순회 가능한(iterable) 객체(예: 문자열, 튜플,range)를 리스트로 변환string_to_list = list("hello")➡️['h', 'e', 'l', 'l', 'o']range_to_list = list(range(5))➡️[0, 1, 2, 3, 4]tuple_to_list = list((1, 2, 3))➡️[1, 2, 3]
- 빈 리스트 만들기:
my_list1 = []my_list2 = list()
리스트 인덱싱(Indexing)
- 정의: 리스트 내 특정 위치(인덱스)의 요소에 접근하는 방법
- 인덱스 규칙:
- 양수 인덱스: 맨 앞 요소부터
0으로 시작,1,2, ... 순으로 증가 - 음수 인덱스: 맨 뒤 요소부터
-1로 시작,-2,-3, ... 순으로 감소
- 양수 인덱스: 맨 앞 요소부터
- 사용법:
리스트이름[인덱스] - 예시:
fruits = ["사과", "바나나", "딸기", "포도", "오렌지"]
print(fruits[0]) # 결과: "사과" (첫 번째 요소)
print(fruits[2]) # 결과: "딸기" (세 번째 요소)
print(fruits[-1]) # 결과: "오렌지" (마지막 요소)
print(fruits[-3]) # 결과: "딸기" (뒤에서 세 번째 요소)
# fruits[5] # IndexError: list index out of range (존재하지 않는 인덱스 접근 시 오류)
리스트 슬라이싱(Slicing)
- 정의: 리스트의 특정 범위의 여러 요소를 새로운 리스트로 잘라내어 접근하는 방법
- 사용법:
리스트이름[start:stop:step]start: 슬라이싱 시작 인덱스 (포함). 생략 시 처음부터.stop: 슬라이싱 종료 인덱스 (미포함). 생략 시 끝까지.step: 인덱스 증가 간격. 생략 시1.
- 예시:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers[2:5]) # 결과: [2, 3, 4] (인덱스 2부터 4까지)
print(numbers[:3]) # 결과: [0, 1, 2] (처음부터 인덱스 2까지)
print(numbers[7:]) # 결과: [7, 8, 9] (인덱스 7부터 끝까지)
print(numbers[1:7:2]) # 결과: [1, 3, 5] (인덱스 1부터 6까지, 2씩 증가)
print(numbers[:]) # 결과: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] (전체 복사)
print(numbers[::-1]) # 결과: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (역순으로)