본문 바로가기

Language & Tool/Python24

🐍리스트와 다른 array 모듈 1. 핵심 개념 동일한 자료형만 저장할 수 있는 배열(array) 자료구조 제공C 언어의 배열처럼 고정된 자료형의 연속된 메모리 공간을 사용 → 다양한 자료형을 섞을 수 없음 (Python 리스트와 다름)리스트와 유사하게 append, insert, pop, index 등을 지원리스트보다 메모리 사용량이 적음 (입력 크기 100만 이상시)→ list[int] : Python 객체 포인터 + 정수 객체 (메모리 오버헤드 큼) → array('i') : 정수만 담으므로 C 기반 고정 크기 배열 (메모리 효율 ▲) → 접근 속도도 C레벨 인덱싱 vs CPython 구현 으로 리스트보다 빠름대량의 숫자 데이터만 저장할 경우 빠르고 효율적→ But. numpy 배열에 비해 기능이 제한적 → 대규모 과학.. 2025. 8. 25.
🐍컨텍스트 관리자와 자동 자원 관리, with 키워드 관련글 : try 구문https://waydd.tistory.com/59 1. 핵심 개념 자원의 획득과 해제를 자동으로 처리 하기 위해 사용하는 컨텍스트 관리자(context manager) 구문→ 자원 관리의 안전성과 편의성 향상 목적의 문법※ 컨텍스트 관리자란? __enter__와 __exit__ 메서드를 가진 객체동작 원리는 컨텍스트 관리자 역할을 하는 인스턴스 (ex. 파일) 에 있음 → with 구문 안에서의 코드 실행 환경(context)을 열고(__enter__), 코드 실행이 끝나면 그 문맥을 닫는(__exit__) 역할 → 즉, 컨텍스트 관리자는 자원 사용 범위와 시점 이라는 문맥을 관리 + with 문법 속에서 위 과정을 자동화하도록 메서드 규약을 지킨 객체파일 (open), .. 2025. 8. 4.
🐍참조 해제와 요소 삭제, del 키워드 (+ 삭제 메서드 비교) 1. 핵심 개념 불필요한 변수 정리는 물론, 컬렉션 요소 제거 등 참조 해제 에 사용되는 예약어→ 해당 이름(name)과 객체 간의 참조 관계 자체를 끊는 역할값을 None 으로 만드는 것(= 참조를 다른 객체로 바꾸는 것) 과는 다름 (값 초기화 vs 참조 해제)사용하지 않는 변수를 명시적로 제거→ 해당 객체에 대한 참조를 줄이고 메모리 해제를 촉진→ 대용량 데이터를 다루는 경우(ex. 대형 리스트, 데이터프레임, 이미지 데이터) 메모리 효율성에 도움컨테이너 자료형 내부 요소 제거에 유용→ 리스트, 딕셔너리, 사용자 정의 객체 에서 원하는 요소만 부분적으로 제거 ex) pop과 달리, 반환 없이 단순 삭제만 수행슬라이싱으로 한번에 많은 요소 제거 가능 → 부분 수정 빠름메모리 관리 최적화 (∵.. 2025. 8. 4.
🐍이진 탐색 모듈, bisect 관련글 :이진탐색 개념과 구현https://waydd.tistory.com/12heapqhttps://waydd.tistory.com/41 1. 핵심 개념 직접 구현 없이 이진 탐색과 삽입 위치 계산을 지원하는 모듈주용도로는 정렬 리스트에서 삽입 위치 계산 과 중복을 포함한 값의 범위 탐색→ 탐색, 삽입 위치 계산을 자동화 (특히 중복 원소 처리에 유용)데이터를 직접 정렬하지는 않음 (정렬 유지용)C로 구현되어 있어 속도가 빠르고 안정적 2. bisect 주요 함수 설명시간 복잡도 bisect.bisect_left(a, x [, lo=0, hi=len(a)]) - 정렬 리스트 a에서 x가 들어갈 가장 왼쪽 위치 반환 → 인덱스 (int) 반환O(log N) bisect.bisect_right(a, x.. 2025. 8. 1.
🧵그래프를 표현하는 표현, 인접 리스트와 인접 행렬 관련글 : 인접 리스트 생성, 변환 (+ 간선 입력)https://waydd.tistory.com/23인접 리스트, 인접 행렬 배열 초기화https://waydd.tistory.com/153행렬https://waydd.tistory.com/14 1. 인접 리스트 (Adjacency List) (공통) 그래프를 컴퓨터 내부에서 저장하는 자료구조로, 알고리즘(BFS, Dijkstra 등)의 기반이 됨→ 동시에 그래프 알고리즘의 효율성을 좌우하는 핵심 기반 구조각 노드에 연결된 이웃 노드를 리스트(딕셔너리) 로 저장리스트 안에 리스트 또는 딕셔너리로 구현됨 ex) dict[ int, list[int]] 또는 list[ list[int] ], list[ list[tuple(int, int)] ](가중치)→ .. 2025. 7. 4.
🐍파이썬 함수 인자의 유연성 관련글 :클로저, 데코레이터https://waydd.tistory.com/53 1. Python에서의 함수 인자 종류와 순서 규칙 크게 데이터를 받는 변수 역할과 함수 시그니처에서 호출 방법을 제한하는 경계선 역할하는 인자로 구분할 수 있음→ 이때, 명시성과 가독성 중시, 동적 타이핑과 다양한 인자 전달 방식 허용→ 재사용성과 확장성 향상 + 다양한 호출 패턴 수용 - 위치 인자가장 기본적인 인자 전달 방식으로, 호출 시 순서 중요def greet(name, age): print(f"{name}은 {age}살입니다.")greet("홍길동", 20) - 키워드 인자호출 시 인자 이름을 명시, 키워드=값 형태로 전달함수 정의에서 기본값이 없어도 사용할 수 있음순서와 관계없이 값을 전달 가능gre.. 2025. 7. 1.