파이썬의 리스트, 딕셔너리, 세트는
데이터를 저장하고 관리하는 데 유용한 자료구조입니다.
위의 자료구조로 기본적인 사용법 외에도
고급 기능과 최적화된 사용법을 통해 더 효율적으로 데이터를 처리할 수 있는데요,
이번 글에서는 리스트, 딕셔너리, 세트의 고급 활용법을 자세히 알아볼게요!
1. 리스트(List) 고급 사용법
리스트는 순서가 있는 데이터의 집합입니다.
숫자, 문자열, 객체 등 다양한 데이터 타입을 담을 수 있으며, 동적으로 크기가 변합니다.
1.1 리스트 내포 (List Comprehension)
리스트 내포를 사용하면 반복문을 한 줄로 작성해 더 간결하고 효율적인 코드를 작성할 수 있습니다.
기본 사용법
# 0부터 9까지의 숫자 제곱을 리스트로 생성
squares = [x ** 2 for x in range(10)]
print(squares)
# 출력: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
조건 포함
# 짝수의 제곱만 리스트로 생성
even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares)
# 출력: [0, 4, 16, 36, 64]
중첩 리스트 내포
# 2차원 리스트 생성
matrix = [[x * y for y in range(1, 4)] for x in range(1, 4)]
print(matrix)
# 출력: [[1, 2, 3], [2, 4, 6], [3, 6, 9]]
1.2 리스트 관련 유용한 메서드
- append(): 요소를 리스트 끝에 추가.
- extend(): 다른 리스트의 모든 요소를 현재 리스트에 추가.
- sort(): 리스트를 정렬 (기본은 오름차순).
- reverse(): 리스트를 반대로 뒤집음.
예제: sort와 reverse
numbers = [5, 3, 8, 6]
numbers.sort()
print(numbers) # 출력: [3, 5, 6, 8]
numbers.reverse()
print(numbers) # 출력: [8, 6, 5, 3]
2. 딕셔너리(Dictionary) 고급 사용법
딕셔너리는 키-값 쌍(key-value pairs)으로 데이터를 저장하며, 빠른 검색과 수정이 가능합니다.
2.1 딕셔너리 내포 (Dictionary Comprehension)
리스트 내포와 유사하게 딕셔너리도 내포를 통해 간결하게 생성할 수 있습니다.
기본 사용법
# 숫자와 제곱값의 딕셔너리 생성
squares = {x: x ** 2 for x in range(5)}
print(squares)
# 출력: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
조건 포함
# 홀수만 포함한 딕셔너리 생성
odd_squares = {x: x ** 2 for x in range(10) if x % 2 != 0}
print(odd_squares)
# 출력: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
2.2 딕셔너리 순회
키와 값 출력
my_dict = {"a": 1, "b": 2, "c": 3}
for key, value in my_dict.items():
print(f"키: {key}, 값: {value}")
# 출력:
# 키: a, 값: 1
# 키: b, 값: 2
# 키: c, 값: 3
2.3 딕셔너리 유용한 메서드
- get(key, default): 키가 존재하지 않을 때 기본값 반환.
- keys(): 모든 키 반환.
- values(): 모든 값 반환.
- items(): 모든 키-값 쌍 반환.
- pop(key): 지정된 키의 값 반환 후 삭제.
예제: get과 pop
my_dict = {"a": 1, "b": 2}
print(my_dict.get("a", 0)) # 출력: 1
print(my_dict.pop("a")) # 출력: 1
print(my_dict) # 출력: {"b": 2}
3. 세트(Set) 고급 사용법
세트는 중복을 허용하지 않는 데이터 구조로, 집합 연산을 쉽게 수행할 수 있습니다.
3.1 세트 생성과 특징
# 세트 생성
my_set = {1, 2, 3, 3, 4}
print(my_set)
# 출력: {1, 2, 3, 4} (중복 제거)
3.2 세트 연산
세트는 수학적 집합 연산을 지원합니다.
합집합 (Union)
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # 출력: {1, 2, 3, 4, 5}
교집합 (Intersection)
print(set1 & set2) # 출력: {3}
차집합 (Difference)
print(set1 - set2) # 출력: {1, 2}
대칭 차집합 (Symmetric Difference)
print(set1 ^ set2) # 출력: {1, 2, 4, 5}
3.3 세트 관련 메서드
- add(): 요소 추가.
- remove(): 요소 제거 (존재하지 않으면 오류 발생).
- discard(): 요소 제거 (존재하지 않아도 오류 없음).
- update(): 여러 요소 추가.
예제: add와 update
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # 출력: {1, 2, 3, 4}
my_set.update([5, 6])
print(my_set) # 출력: {1, 2, 3, 4, 5, 6}
요약
- 리스트(List): 순서가 있는 데이터의 집합으로, 리스트 내포와 다양한 메서드를 활용해 효율적인 데이터 처리가 가능합니다.
- 딕셔너리(Dictionary): 키-값 쌍으로 데이터를 저장하며, 딕셔너리 내포와 메서드를 통해 데이터를 쉽게 관리할 수 있습니다.
- 세트(Set): 중복 없는 데이터 구조로, 집합 연산과 중복 제거에 유용합니다.
'프로그래밍 공부 > pyhton' 카테고리의 다른 글
파이썬 데이터 분석 - Pandas를 활용한 데이터 전처리 (0) | 2025.03.14 |
---|---|
파이썬 데이터 분석 - NumPy와 Pandas 기초 (0) | 2025.03.13 |
파이썬 기초 - 제너레이터(Generators) (1) | 2024.09.13 |
파이썬 기초 - 데코레이터(Decorator) (0) | 2024.09.13 |
파이썬 기초 - 객체지향 프로그래밍(OOP), 클래스와 객체 (0) | 2024.09.11 |