Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python

  1. 파이썬 queue 모듈로 스택과 큐 손쉽게 구현하기

    파이썬(Python)에서는 내장 모듈만으로도 스택과 큐 자료구조를 아주 간단하게 구현할 수 있습니다. 스택(Stack)은 나중에 들어간 것이 먼저 나온다는 후입선출(LIFO, Last-In First-Out) 방식으로 동작하고, 큐(Queue)는 먼저 들어간 것이 먼저 나온다는 선입선출(FIFO, First-In First-Out) 방식으로 동작합니다. 파이썬이 제공하는 내장 함수를 활용하면 코드가 훨씬 짧고 단순해집니다. queue 모듈이란? 파이썬의 queue 모듈은 멀티 프로듀서(multi-producer)와 멀티 컨슈머(mu

  2. Python으로 배열을 주어진 범위 기준으로 3방향 분할하는 방법

    배열과 그 배열의 범위 [startval, endval]이 주어졌을 때, 이 알고리즘은 배열을 세 부분으로 나눕니다. 첫 번째 부분: startval보다 작은 모든 요소가 앞쪽에 위치합니다. 두 번째 부분: startval 이상 endval 이하 범위에 속하는 모든 요소가 그다음에 위치합니다. 세 번째 부분: endval보다 큰 모든 요소가 마지막에 위치합니다. 이 방식은 데이터를 특정 구간을 기준으로 분류해야 할 때 유용하며, 리스트 컴프리헨션(list comprehension)을 활용하면 간결하게 구현할 수 있습니다. 예시

  3. 파이썬에서 리스트를 N 크기의 청크로 나누는 방법

    이 글에서는 사용자가 입력한 리스트와 지정된 청크(chunk) 크기를 기준으로, 리스트를 해당 크기만큼 잘라서 나누는 방법을 알아봅니다. 두 가지 방법을 소개하며, 각각 yield 키워드를 활용하는 제너레이터 방식과 리스트 컴프리헨션(List Comprehension)을 활용하는 방식입니다. 방법 1: yield 키워드 활용하기 첫 번째 방법은 yield 키워드를 사용하는 것입니다. yield는 함수가 중단된 위치부터 다시 실행을 이어갈 수 있게 해주며, 이것이 일반 함수와 제너레이터 함수의 가장 큰 차이점입니다. 즉, 함수가 한

  4. 파이썬 집합(Set)으로 세 개의 리스트에서 공통 요소 찾기

    사용자로부터 입력받은 세 개의 리스트가 주어졌을 때, 세 리스트 모두에 공통으로 존재하는 요소를 찾아내는 것이 이 프로그램의 목표입니다. 파이썬에서는 리스트를 집합(set)으로 변환한 뒤 교집합(intersection) 메서드를 활용하면 가장 간단하고 효율적으로 문제를 해결할 수 있습니다. 집합은 중복된 값을 허용하지 않는 자료구조이며, 교집합 연산이 해시 기반으로 구현되어 있어 리스트의 요소를 하나씩 일일이 비교하는 방식보다 훨씬 빠르게 동작합니다. 따라서 데이터가 많아질수록 집합을 활용한 접근이 유리합니다. 예제 입력 A = [

  5. Python 딕셔너리를 활용한 그래프 구현 완벽 가이드

    딕셔너리로 그래프 표현하기Python에서는 딕셔너리(Dictionary)를 활용해 그래프(Graph)를 손쉽게 구현할 수 있습니다. 딕셔너리에서 각 키(key)는 그래프의 정점(vertex)을 나타내고, 값(value)에는 해당 정점과 연결된 정점들의 목록을 저장합니다. 이렇게 구성된 전체 구조는 곧 그래프 G(V, E)의 인접 리스트(Adjacency List)와 같은 형태가 됩니다.기본 딕셔너리 객체를 사용해도 되지만, 여기서는 collections 모듈의 defaultdict를 사용합니다. defaultdict는 존재하지 않는

  6. Python에서 텍스트 파일 읽고 쓰는 방법 완벽 정리

    다른 프로그래밍 언어와 마찬가지로 Python도 파일을 읽고, 쓰고, 접근하기 위한 다양한 내장 함수를 제공합니다. Python이 처리할 수 있는 파일은 크게 두 가지 유형으로 나뉩니다. 바로 일반 텍스트 파일과 바이너리 파일입니다. 텍스트 파일의 경우 각 줄은 특수 문자인 \n(EOL 또는 End Of Line이라고도 함)으로 끝납니다. 반면 바이너리 파일에는 줄 끝을 나타내는 문자가 없으며, 내용을 비트 스트림 형태로 변환하여 데이터를 저장합니다. 이 글에서는 텍스트 파일을 다루는 방법에 대해 자세히 알아보겠습니다. 파일 접근

  7. Python으로 리눅스 터미널에 서식 있는 텍스트 출력하기

    이 글에서는 리눅스 터미널에서 서식이 적용된(formatted) 텍스트를 출력하는 방법을 알아봅니다. 서식을 활용하면 텍스트의 색상, 스타일은 물론 깜빡임이나 반전 같은 특수 효과까지 자유롭게 지정할 수 있습니다. ANSI 이스케이프 시퀀스란? 리눅스 터미널은 ANSI 이스케이프 시퀀스(escape sequence)를 지원하여 텍스트의 서식, 색상 등 다양한 속성을 제어합니다. 원리는 간단합니다. 출력하려는 텍스트에 특정 제어 바이트를 함께 삽입하면, 터미널이 이를 해석하는 순간 해당 서식이 화면에 반영되는 것입니다. ANSI 이스

  8. Python 부동소수점 정밀도 처리 방법 총정리: trunc, ceil, floor부터 round까지

    Python에서는 다양한 함수를 활용해 부동소수점(floating point) 숫자의 정밀도를 손쉽게 처리할 수 있습니다. 정밀도 처리에 사용되는 대부분의 함수는 math 모듈에 정의되어 있으므로, 이를 사용하기 전에 먼저 현재 네임스페이스로 모듈을 임포트해야 합니다. import math 이제 정밀도 처리에 활용할 수 있는 주요 함수들을 하나씩 살펴보겠습니다. trunc() 함수 – 소수점 이하 제거 trunc() 메서드는 부동소수점 숫자에서 소수점 이하 부분을 모두 잘라내고, 오직 정수 부분만 반환합니다. 즉, 숫자를 0을 향해

  9. 파이썬 shelve 모듈로 구현하는 객체 영속성 저장 완벽 가이드

    shelve 모듈이란?파이썬 표준 라이브러리의 shelve 모듈은 관계형 데이터베이스까지 도입할 필요가 없는 상황에서 데이터를 간편하게 영속적으로 저장할 수 있게 해주는 도구입니다. 이 모듈이 제공하는 shelf 객체는 딕셔너리와 거의 같은 방식으로 동작하면서도 그 내용이 디스크 파일에 저장된다는 점이 특징입니다. 생성되는 파일은 UNIX 계열 시스템의 dbm 데이터베이스와 유사한 형태입니다.다만 이 특수한 딕셔너리 객체에서는 키(key)로 문자열 타입만 사용할 수 있다는 점에 유의해야 하며, 값(value)에는 pickle로 직렬

  10. Python pathlib 완벽 정리: 객체 지향 파일 시스템 경로 다루기

    Python의 pathlib 모듈은 파일 시스템 경로를 객체 지향적인 방식으로 처리할 수 있게 해주는 표준 라이브러리입니다. 문자열 기반의 os.path 모듈과 달리, pathlib는 경로를 하나의 객체로 다루기 때문에 코드가 더 직관적이고 가독성이 뛰어나며, 운영체제별 차이도 자동으로 처리해 줍니다.pathlib 모듈이란?pathlib 모듈은 운영체제에 적합한 경로 처리 기능을 제공하며, 이 모듈에서 정의하는 클래스는 크게 두 종류로 나뉩니다.순수 경로(Pure Path) 타입 — 순수하게 계산만 가능한 경로 객체로, 실제 파일

  11. Python fileinput 모듈로 여러 입력 스트림의 줄 반복 처리하기

    Python의 내장 open() 함수는 하나의 파일을 읽기/쓰기 모드로 열어 해당 파일에 대한 입출력 작업을 수행합니다. 하지만 여러 파일을 한 번에 일괄 처리해야 한다면 Python 표준 라이브러리의 fileinput 모듈을 사용하는 것이 좋습니다. 이 모듈은 파일들을 순차적으로 순회(iterate)할 수 있는 Fileinput 클래스를 제공하며, 같은 목적을 위한 다양한 헬퍼 함수도 함께 정의하고 있습니다.fileinput.input() 함수이 모듈의 기본 인터페이스는 input() 함수입니다. 이 함수는 Fileinput 클래

  12. 파이썬 linecache 모듈로 텍스트 파일 줄에 임의 접근하기

    파이썬 표준 라이브러리의 linecache 모듈은 텍스트 파일의 특정 줄에 임의로 접근할 수 있도록 도와주는 기능을 제공합니다. 이 모듈은 파이썬의 traceback 모듈이 오류 추적 스택(traceback)을 생성할 때 내부적으로 광범위하게 사용되기도 합니다. linecache는 한 번 읽은 파일의 내용을 캐시(cache)에 저장해 두기 때문에 같은 줄을 반복해서 읽을 때 시간을 크게 절약할 수 있습니다.linecache 모듈의 주요 함수이 모듈에서 가장 중요한 함수는 지정한 파일에서 특정 줄 번호를 읽어오는 getline()입니

  13. Python filecmp 모듈로 파일과 디렉토리 비교하는 방법

    Python의 표준 라이브러리에는 filecmp 모듈이 포함되어 있으며, 이 모듈은 파일과 디렉토리를 비교할 수 있는 다양한 함수를 제공합니다. 비교 작업은 단순히 파일 내부의 데이터뿐만 아니라 파일의 메타데이터(속성 정보)까지 함께 고려한다는 점이 특징입니다.이 글에서는 다음과 같은 파일 및 디렉토리 구조를 예제로 사용하여 filecmp 모듈의 주요 기능을 살펴보겠습니다.먼저 현재 작업 디렉토리 아래에 dir1과 dir2라는 두 개의 디렉토리를 생성하고, 각각 다음과 같은 파일을 준비합니다.--dir1/newfile.txt-- T

  14. Python tempfile 모듈로 임시 파일 및 디렉토리 생성하는 방법

    파이썬 표준 라이브러리의 tempfile 모듈은 임시 파일과 임시 디렉토리를 생성할 수 있는 다양한 함수를 제공합니다. 이렇게 생성된 파일과 디렉토리는 운영체제의 파일 시스템이 지정한 특수 임시(temp) 디렉토리에 저장됩니다. 예를 들어 Windows에서는 profile/AppData/Local/Temp 폴더를 사용하고, Linux에서는 일반적으로 /tmp 디렉토리에 임시 파일이 보관됩니다.이 글에서는 tempfile 모듈에서 제공하는 주요 함수들을 하나씩 살펴보겠습니다.TemporaryFile()TemporaryFile() 함수

  15. 파이썬(Python) csv 모듈 완벽 가이드 – CSV 파일 읽기·쓰기 방법

    CSV(Comma Separated Values, 쉼표로 구분된 값)는 스프레드시트에서 가장 널리 사용되는 데이터 형식 중 하나입니다. 파이썬 표준 라이브러리의 csv 모듈은 CSV 파일을 읽고 쓰는 데 필요한 다양한 클래스와 메서드를 제공합니다. 이 글에서는 csv 모듈의 핵심 기능을 예제 코드와 함께 단계별로 살펴보겠습니다. 1. writer() – CSV 파일에 데이터 쓰기 csv 모듈의 writer() 함수는 데이터를 구분자로 구분된 문자열로 변환해 파일 객체에 저장하는 writer 객체를 반환합니다. 이 함수는 쓰기 권한

  16. Python JSON 인코더·디코더 완벽 가이드 – json 모듈 핵심 정리

    JSON(JavaScript Object Notation)은 경량 데이터 교환 형식으로, Python의 pickle과 비슷한 역할을 합니다. 다만 pickle 직렬화는 Python에 종속적인 반면, JSON은 대부분의 프로그래밍 언어에서 지원된다는 점이 큰 차이입니다. Python 표준 라이브러리의 json 모듈은 pickle 및 marshal 모듈과 유사한 객체 직렬화 기능을 제공합니다. pickle 모듈과 마찬가지로 json 모듈도 Python 객체를 JSON 인코딩 문자열로 직렬화하는 dumps()와 loads() 함수를 제공

  17. Python zlib 모듈 완벽 정리 – gzip과 호환되는 데이터 압축 구현 방법

    Python의 zlib 모듈은 데이터 압축 분야의 사실상 표준인 zlib 압축 라이브러리(https://www.zlib.net)를 파이썬에서 간편하게 사용할 수 있도록 제공하는 인터페이스입니다. 리눅스·유닉스 환경에서 널리 쓰이는 gzip 역시 내부적으로 zlib과 동일한 DEFLATE 알고리즘을 사용하기 때문에, 이 모듈을 활용하면 gzip 형식과 호환되는 압축 데이터를 손쉽게 다룰 수 있습니다. 이 글에서는 zlib 모듈의 핵심 함수와 클래스를 예제 코드와 함께 살펴보겠습니다. compress() – 데이터 압축하기 compr

  18. Python gzip 모듈 완벽 가이드: 파일 압축과 해제하기

    GZip은 파일을 압축하고 해제하는 데 사용되는 대표적인 압축 도구로, GNU 프로젝트의 일부입니다. 파이썬(Python)의 gzip 모듈은 이 GZip 프로그램에 접근할 수 있는 인터페이스 역할을 하며, gzip 데이터 압축 알고리즘 자체는 zlib 모듈을 기반으로 동작합니다.gzip 모듈에는 GzipFile 클래스와 그 메서드들이 정의되어 있고, 편의 함수인 open(), compress(), decompress()도 함께 제공됩니다. 가장 간단하게 압축과 해제를 수행하는 방법은 바로 이 편의 함수들을 활용하는 것입니다.open

  19. 파이썬 bz2 모듈로 bzip2 압축 파일 다루기: 기본부터 점진적 압축까지

    bzip2는 파일 압축 및 해제를 위한 대표적인 오픈 소스 알고리즘입니다. 파이썬에서는 표준 라이브러리인 bz2 모듈을 통해 이 알고리즘을 코드로 간편하게 구현할 수 있습니다. bz2 모듈의 기본 인터페이스는 open() 함수이며, 그 외에도 BZ2File, BZ2Compressor, BZ2Decompressor 클래스를 제공합니다. 아래 예제를 실행하려면 먼저 import bz2로 모듈을 불러와야 합니다. open() 함수 open() 함수는 bzip2로 압축된 파일을 열고 파일 객체를 반환합니다. 파일은 읽기/쓰기 권한과 함께

  20. Python lzma 모듈로 LZMA 알고리즘 압축 완벽 가이드

    LZMA 알고리즘 개요LZMA(Lempel–Ziv–Markov chain Algorithm)는 사전 기반 압축 방식을 활용해 무손실 데이터 압축을 수행하는 알고리즘으로, 다른 압축 알고리즘에 비해 월등히 높은 압축률을 자랑합니다. Python의 lzma 모듈은 이 알고리즘으로 데이터를 압축하고 해제할 수 있는 다양한 클래스와 편의 함수들을 제공합니다.이 모듈은 bz2 모듈과 기능이 매우 유사하지만 한 가지 중요한 차이점이 있습니다. BZ2File 클래스와 달리 LZMAFile 클래스는 스레드 안전(thread-safe)하지 않으므로

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:82/450  20-컴퓨터/Page Goto:1 76 77 78 79 80 81 82 83 84 85 86 87 88