본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.
본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.
이미지 로딩 중...
AI Generated
2025. 11. 1. · 44 Views
Data Structure 최신 기능 완벽 가이드
최신 프로그래밍 언어에서 제공하는 강력한 데이터 구조 기능들을 소개합니다. 초급 개발자도 쉽게 이해하고 활용할 수 있는 실용적인 예제와 함께 설명합니다.
들어가며
이 글에서는 Data Structure 최신 기능 완벽 가이드에 대해 상세히 알아보겠습니다. 총 8가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.
목차
- Dictionary_Merge_Operator
- List_Comprehension_With_Walrus
- Set_Operations
- Deque_For_Fast_Operations
- Counter_For_Counting
- DefaultDict_For_Missing_Keys
- Named_Tuple_For_Readable_Code
- ChainMap_For_Multiple_Dicts
1. Dictionary Merge Operator
개요
Python 3.9+에서 도입된 딕셔너리 병합 연산자(|)를 사용하면 두 딕셔너리를 간단하게 합칠 수 있습니다.
코드 예제
user = {"name": "Alice", "age": 25}
extra = {"city": "Seoul", "job": "Developer"}
# 딕셔너리 병합
merged = user | extra
print(merged)
# {'name': 'Alice', 'age': 25, 'city': 'Seoul', 'job': 'Developer'}
설명
| 연산자를 사용하면 두 딕셔너리를 쉽게 합칠 수 있으며, 중복된 키가 있으면 오른쪽 딕셔너리의 값이 우선됩니다.
2. List Comprehension With Walrus
개요
Python 3.8+의 바다코끼리 연산자(:=)를 리스트 컴프리헨션에서 사용하면 중복 계산을 피할 수 있습니다.
코드 예제
numbers = [1, 2, 3, 4, 5, 6]
# 제곱값이 10보다 큰 경우만 저장
result = [squared for n in numbers
if (squared := n ** 2) > 10]
print(result) # [16, 25, 36]
설명
:= 연산자로 계산 결과를 변수에 저장하고 바로 조건문에 사용할 수 있어 코드가 효율적입니다.
3. Set Operations
개요
Set(집합) 자료구조를 사용하면 중복 제거와 집합 연산을 쉽게 수행할 수 있습니다.
코드 예제
fruits1 = {"apple", "banana", "orange"}
fruits2 = {"banana", "grape", "orange"}
# 교집합, 합집합, 차집합
common = fruits1 & fruits2
all_fruits = fruits1 | fruits2
only_in_1 = fruits1 - fruits2
print(f"공통: {common}") # {'banana', 'orange'}
설명
Set은 중복을 자동으로 제거하며, &(교집합), |(합집합), -(차집합) 연산자로 집합 연산을 직관적으로 수행합니다.
4. Deque For Fast Operations
개요
collections.deque는 양쪽 끝에서 빠른 추가/삭제가 가능한 자료구조로, 큐나 스택 구현에 최적입니다.
코드 예제
from collections import deque
queue = deque([1, 2, 3])
queue.append(4) # 오른쪽에 추가
queue.appendleft(0) # 왼쪽에 추가
queue.pop() # 오른쪽에서 제거
queue.popleft() # 왼쪽에서 제거
print(queue) # deque([1, 2, 3])
설명
일반 리스트와 달리 deque는 양쪽 끝에서 O(1) 시간 복잡도로 추가/삭제가 가능해 성능이 우수합니다.
5. Counter For Counting
개요
collections.Counter는 요소의 개수를 자동으로 세어주는 편리한 자료구조입니다.
코드 예제
from collections import Counter
words = ["apple", "banana", "apple", "orange", "banana", "apple"]
counter = Counter(words)
print(counter.most_common(2))
# [('apple', 3), ('banana', 2)]
print(counter["apple"]) # 3
설명
Counter는 딕셔너리를 상속받아 요소 빈도를 자동 계산하며, most_common() 메서드로 가장 흔한 요소를 쉽게 찾을 수 있습니다.
6. DefaultDict For Missing Keys
개요
collections.defaultdict는 존재하지 않는 키에 접근할 때 기본값을 자동으로 생성해주는 딕셔너리입니다.
코드 예제
from collections import defaultdict
# 기본값이 리스트인 딕셔너리
groups = defaultdict(list)
groups["fruits"].append("apple")
groups["fruits"].append("banana")
groups["vegetables"].append("carrot")
print(dict(groups))
설명
일반 딕셔너리와 달리 KeyError 없이 자동으로 기본값이 생성되므로, 그룹핑이나 집계 작업에 매우 유용합니다.
7. Named Tuple For Readable Code
개요
collections.namedtuple은 필드 이름으로 접근 가능한 튜플로, 가독성 높은 코드를 작성할 수 있습니다.
코드 예제
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
p = Point(10, 20)
print(f"X: {p.x}, Y: {p.y}") # X: 10, Y: 20
print(p[0]) # 10 (인덱스로도 접근 가능)
설명
튜플의 불변성을 유지하면서 필드 이름으로 접근할 수 있어, 간단한 데이터 클래스를 만들 때 유용합니다.
8. ChainMap For Multiple Dicts
개요
collections.ChainMap은 여러 딕셔너리를 하나로 묶어 순차적으로 검색할 수 있게 해줍니다.
코드 예제
from collections import ChainMap
defaults = {"color": "blue", "size": "M"}
custom = {"color": "red"}
config = ChainMap(custom, defaults)
print(config["color"]) # red (custom 우선)
print(config["size"]) # M (defaults에서 찾음)
설명
여러 딕셔너리를 실제로 병합하지 않고 논리적으로 연결하여, 설정값의 우선순위를 쉽게 관리할 수 있습니다. --- 위 형식대로 8개의 Python 데이터 구조 최신 기능을 소개하는 카드 뉴스를 생성했습니다. 각 카드는 실제 작동하는 코드 예제와 함께 초급 개발자도 이해하기 쉬운 설명을 포함하고 있습니다.
마치며
이번 글에서는 Data Structure 최신 기능 완벽 가이드에 대해 알아보았습니다. 총 8가지 개념을 다루었으며, 각각의 사용법과 예제를 살펴보았습니다.
관련 태그
#Python #DataStructure #Collections #ModernFeatures #BuiltInTypes
댓글 (0)
함께 보면 좋은 카드 뉴스
프레임워크 선택 LangGraph vs CrewAI vs AutoGen 완벽 가이드
AI 에이전트 개발을 위한 세 가지 핵심 프레임워크를 비교 분석합니다. 각 프레임워크의 특징, 장단점, 실무 선택 기준을 초급 개발자도 이해할 수 있도록 설명합니다.
Day 6 학습 루프 이해하기
LLM이 실제로 어떻게 학습하는지 학습 루프의 핵심 원리를 단계별로 살펴봅니다. Forward Pass, Loss 계산, Backward Pass, 파라미터 업데이트까지 한 사이클의 전 과정을 이해합니다.
Day 5 Baseline 모델 만들기
복잡한 모델에 앞서 가장 단순한 Baseline 모델을 직접 만들어봅니다. 아무런 기교 없이 순수하게 다음 토큰을 예측하는 모델을 구현하면서, 언어모델의 가장 기본 구조를 이해합니다.
Day 4 학습용 샘플 데이터 만들기
LLM을 학습시키기 위한 샘플 데이터를 직접 만들어봅니다. 작은 텍스트 말뭉치를 준비하고, 토크나이저로 변환한 뒤 PyTorch 텐서로 만드는 전체 과정을 단계별로 배웁니다.
Day 2 PyTorch 기본기 정리
LLM을 직접 만들기 위해 꼭 알아야 할 PyTorch의 핵심 개념을 정리합니다. 텐서, 자동 미분, 옵티마이저까지 모델 학습의 기초를 다집니다.