반응형
개요
기본적인 자료 구조를 다루는 방법부터 파이썬 특유의 효율적인 데이터 처리 기법까지 살펴본다.
1. 리스트(List)의 기본 선언과 조작
리스트는 대괄호([]) 를 사용하여 선언하며, 생성 후 요소를 자유롭게 추가하거나 삭제할 수 있다.
리스트 선언 및 추가/삭제
# 리스트 선언 (대괄호 사용)
fruits = ['apple', 'banana']
# 요소 추가 (append, insert)
fruits.append('cherry') # 맨 뒤에 추가
fruits.insert(1, 'orange') # 특정 인덱스에 추가
# 요소 삭제 (remove, pop)
fruits.remove('banana') # 특정 값을 찾아 삭제
popped_item = fruits.pop() # 맨 뒤 요소를 꺼내며 삭제
2. 지능형 리스트 (List Comprehension)
기본적인 리스트 조작법을 익혔다면, 이제 조건에 따라 값을 조정하며 새 리스트를 만드는 '지능형 리스트'를 사용할 차례다.
조건에 따른 값 추출 및 조정
# 리스트 선언
numbers = [1, 2, 3, 4, 5, 6]
# 예: 짝수만 골라내어 그 값을 제곱한 새 리스트 생성
# [표현식 for 항목 in 반복가능객체 if 조건]
even_squares = [n**2 for n in numbers if n % 2 == 0]
print(even_squares) # 결과: [4, 16, 36]
3. Dictionary
Dictionary는 키(Key)와 값(Value)이 한 쌍으로 연결된 자료구조다. 중괄호({})를 사용하여 선언하며, 이름표(키)를 통해 데이터를 빠르게 찾아낼 수 있다.
기본 선언과 데이터 조작
# 1. 선언 (중괄호 사용) 및 데이터 접근
user = {'name': 'Alice', 'role': 'admin'}
print(user['name']) # 출력: Alice
# 2. 데이터 추가 및 수정
user['level'] = 5 # 새로운 키-값 쌍 추가
user['role'] = 'editor' # 기존 키의 값 수정
# 3. 데이터 삭제
del user['level'] # 특정 키 삭제
removed_role = user.pop('role') # 키를 삭제하며 값을 반환
KeyError와 get() 메소드
일반적인 대괄호 접근법은 존재하지 않는 키를 호출할 때 프로그램이 강제 종료되는 KeyError를 발생시킨다. 이를 안전하게 처리하려면 get() 메소드를 사용해야 한다.
# 1. 일반적인 접근 (에러 발생 가능성)
# print(user['status']) # KeyError 발생
# 2. get() 메소드 활용 (안전한 호출)
status = user.get('status', 'offline')
print(status) # 출력: offline
4. 세트(Set)
세트는 중복을 허용하지 않는 자료형이다. 딕셔너리와 마찬가지로 중괄호({})를 사용하여 선언하지만, 키 없이 값만 나열한다는 점이 다르다.
기본 선언과 데이터 조작
# 1. 선언 (중괄호 사용)
ids = {101, 102, 103}
# 2. 데이터 추가
ids.add(104) # 단일 요소 추가
ids.update([105, 106]) # 여러 요소 추가
# 3. 데이터 삭제
ids.remove(101) # 요소 삭제 (값이 없으면 에러 발생)
ids.discard(102) # 요소 삭제 (값이 없어도 안전함)
리스트를 이용한 활용 (중복 제거)
raw_data = [1, 1, 2, 3, 3, 3]
unique_data = list(set(raw_data)) # 리스트 -> 세트(중복제거) -> 리스트
print(unique_data) # 결과: [1, 2, 3]
5. 데이터 분리 할당(Unpacking)
데이터 분리 할당은 리스트나 튜플 같은 묶음 데이터를 여러 변수로 나누어 동시에 할당하는 기법이다.
다중 변수 할당과 가변적 분리
# 1. 순서 기반 할당
# 각 인덱스 값이 변수에 순차적으로 1:1 매칭된다.
point = (10, 20, 30)
x, y, z = point # x=10, y=20, z=30
# 2. 가변적 분리 (별표 연산자 활용)
# 별표(*)가 붙은 변수는 리스트 객체로 자동 할당되어 남은 요소들을 수집한다.
scores = [100, 90, 80, 70, 60]
top, *others, bottom = scores
# 할당 메커니즘:
# top, bottom: 단일 값을 받는 일반 변수 타입 (int)
# *others: 가변 데이터를 담기 위해 파이썬이 리스트 객체로 자동 할당 (list)
# 할당 결과: top = 100; others = [90, 80, 70]; bottom = 60
print(top) # 100
print(others) # [90, 80, 70]
print(bottom) # 60
💡 주의점 및 활용 팁
- 괄호의 구분: 리스트는 [], 딕셔너리와 세트는 {}를 사용한다. 특히 세트는 값만 나열하고, 딕셔너리는 Key:Value 형태임을 명심해야 한다.
- 데이터 안정성: 딕셔너리 접근 시 KeyError를 방지하기 위해 가급적 get() 메소드를 활용하는 습관을 들인다.
- 성능과 용도: 순서가 중요하면 리스트를, 고유한 값의 집합이 필요하면 세트를, 의미 있는 키로 빠른 탐색이 필요하면 딕셔너리를 선택한다.
- 효율적 할당: 데이터 분리 할당 시 별표(*)를 활용하면 가변적인 데이터 구조를 매우 깔끔하게 처리할 수 있다.
반응형
'Dev > Python' 카테고리의 다른 글
| 파이썬 기초: 클래스(Class)와 객체(Object)의 이해 (0) | 2026.01.03 |
|---|---|
| 파이썬 기초: 함수(Function)의 정의와 활용 (0) | 2026.01.02 |
| 파이썬 기초: 반복문(for, while) (0) | 2025.12.31 |
| 파이썬 기초: 조건문 (0) | 2025.12.30 |
| 파이썬 기초: 연산자와 데이터 처리 (0) | 2025.12.29 |