Skip to Content
Python 프로그래밍, 제 4판
book

Python 프로그래밍, 제 4판

by Mark Lutz
May 2025
Intermediate to advanced
1632 pages
34h 19m
Korean
O'Reilly Media, Inc.
Book available
Content preview from Python 프로그래밍, 제 4판

18장. 데이터 구조

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

"장미는 빨갛고 제비꽃은 파랗고, 목록은 변경 가능하며, 세트 푸도 마찬가지"

데이터 구조는 대부분의 프로그램에서 핵심 주제이지만, Python 프로그래머는 신경 쓸 필요가 없는 경우가 많습니다. Python에는 목록, 문자열, 튜플, 사전, 집합 등 구조화된 데이터를 쉽게 처리할 수 있도록 이미 최적화된 다양한 기본 제공 유형이 '즉시' 제공됩니다. 간단한 시스템의 경우 일반적으로 이러한 유형으로 충분합니다. 예를 들어, 사전은 많은 고전적인 검색 알고리즘을 대체하며, 목록은 저수준 언어로 컬렉션을 지원하기 위해 수행해야 하는 작업의 대부분을 대체합니다. 그럼에도 불구하고 두 가지 모두 사용하기가 너무 쉬워서 대개는 다시 생각해 보지 않습니다.

그러나 고급 애플리케이션의 경우 추가 요구 사항이나 특수한 경우를 처리하기 위해 더 정교한 자체 유형을 추가해야 할 수도 있습니다. 이 장에서는 Python에서 집합, 스택, 그래프 등 몇 가지 고급 데이터 구조 구현을 살펴봅니다. 앞으로 살펴보겠지만 데이터 구조는 언어의 타입 모델에 통합된 새로운 객체 타입의 형태를 취할 수 있습니다. 즉, 우리가 Python으로 코딩하는 객체는 완전한 데이터 타입이되어 이를 사용하는 스크립트에서 내장된 목록, 숫자, 사전처럼 보이고 느껴질 수 있습니다.

이 장의 예제는 고급 프로그래밍과 컴퓨터 과학 기술을 보여주지만, 재사용 가능한 소프트웨어 작성을 위한 Python의 지원도 강조합니다. 객체 구현은 클래스와 모듈로 코딩되기 때문에 자연스럽게 이를 임포트하는 모든 프로그램에서 사용할 수 있는 일반적으로 유용한 구성 요소가 됩니다. 사실상 우리는 계획했든 계획하지 않았든 데이터 구조 도구 라이브러리를 구축하게 될 것입니다.

또한, 이 장의 예제는 대부분 순수한 Python 코드이지만(적어도 일반 독자에게는 이전 장의 예제에 비해 상대적으로 단순해 보일 수도 있다), Python 성능 문제를 논의하기 위한 사용 사례를 제공하고 20장의주제인 가장 일반적인 관점에서 새로운 Python 객체는 Python 또는 C와 같은 통합 언어에서 구현할 수 있으며 C로 코딩된 유형은 여기에 있는 것과 유사한 패턴을 사용한다라는 것을 암시합니다.

하지만 결국 이 영역에서는 Python의 기본 지원이 자체 개발한 솔루션을 대신할 수 있는 경우가 많다는 사실도 알게 될 것입니다. 사용자 정의 데이터 구조 구현은 때때로 필요하고 코드 유지 관리 및 발전 측면에서 여전히 많은 것을 제공하지만, 프로그래머 친화적이지 않은 언어에서처럼 Python에서 항상 가장 중요한 것은 아닙니다.

스택 구현

스택은 언어 처리, 그래프 검색 등 다양한 애플리케이션에서 사용되는 일반적이고 간단한 데이터 구조입니다. 예를 들어, 다음 장의 계산기 GUI에서 식 평가는 주로 스택을 다루는 연습이며, 일반적으로 프로그래밍 언어는 호출이 반환되면 다시 시작할 작업을 기억하기 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

데이터 과학을 위한 통계: 데이터 분석에서 머신러닝까지 50가지 핵심 개념

데이터 과학을 위한 통계: 데이터 분석에서 머신러닝까지 50가지 핵심 개념

이준용, 피터 브루스, 앤드루 브루스

Publisher Resources

ISBN: 9798341656369Supplemental Content