본문 바로가기

전체 글155

[Python] 제네레이터(Generator)를 이용한 itertools 예시 병행성(Concurrency) : 한 컴퓨터가 여러 일을 동시에 수행 병렬성(Parallelistm) : 여러 컴퓨터가 여러 작업을 동시에 수행 단일 프로그램 안에서 여러 일을 쉽게 해결한다. 쓰레드는 한 개지만, 여러 일을 동시에 할 수 있기에 효율성이 매우 올라간다. 병행성에서 중요한 점은 하던 일을 기록해야한다는 점이다. def generator_ex1(): print('Start') yield 'A Point.' print('continue') yield 'B Point.' print('End') temp = iter(generator_ex1()) print(next(temp)) >>> Start >>> A Point. print(next(temp)) >>> continue >>> B Point... 2021. 12. 1.
[Python] 반복자(Iterator), 제너레이터(Generator)에 대한 이해 파이썬에는 원소를 받을 수 있는 다양한 자료구조가 있다. 특히 리스트, 딕셔너리 등은 여러 원소를 처리하는 대표적인 자료구조이다. 원소는 기본적으로 정적으로 만들어져서 반복 가능한 반복형(Iterable) 클래스이다. Iterable하다는 뜻은 반복 가능한 객체란 뜻이다. 이런 반복형 클래스를 동적 객체로 변환해 반복자로 만들고, 필요할 때마다 원소를 추출해서 처리하는 방식이 반복자(Iterator) 클래스이다. 즉, iterator란 반복 가능한 객체(리스트, 퓨플, 셋, 사전, 문자열)에서 반복문을 활용하여 데이터를 순회하면서 각 요소를 하나씩 꺼내 어떤 처리를 수행할 수 있도록 하는 간편한 방법을 제공하는 객체이다. Iterable과 Iterator는 ‘collections.abc’ 내장 모듈에 정.. 2021. 11. 24.
[Baekjoon] 백준 알고리즘: 1269 - 대칭 차집합 문제 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 내가 생각했던 풀이과정 1. 집합에 공통 요소가 없기 때문에 리스트 대신 Set 으로 입력받는다. 2. Set의 교집합, 합집합, 차집합, 대칭 차집합 등의 지원해주는 연산자를 통하여 문제를 풀어낸다. 나의 풀이 A, B = map(int, input().split()) A_set = set(map(int, input().split())) B_set = set(map(int, input.. 2021. 11. 23.
[Python] 데코레이터(Decorator) 데코레이터는 함수를 받아서 새로운 함수를 만들어 반환하는 함수로 정의할 수 있다. 데코레이터를 사용하려면 다음과 같은 내용이 선행되어야 합니다. 클로저 일급 함수 가변 인자 인자 언패킹(argument unpacking) 데코레이터의 장점 중복 제거, 코드 간결, 공통 기능 작성 로깅, 프레임워크, 유효성 체크 등을 공통적으로 실행할 수 있습니다. 예를 들어 함수의 실행시간을 측정하려고 하면 함수 사이에 넣는 것이 아닌 시작시간, 종료시간을 측정해주는 함수를 데코레이터(Decorator)로 만들어 놓고 나머지 함수에 장식(Decorate)를 하는 것 입니다. 함수 실행 시간 측정을 100개의 함수를 측정한다고 가정할 때, 데코레이터를 통해서 실행되기 때문에 공통 기능으로 실행시킬 수 있습니다. 조합해서 .. 2021. 11. 17.