리스트 컴프리헨션이란 새로운 리스트를 만들 때 사용할 수 있는 간단한 표현식으로 리스트와 마찬가지로 대괄호 \[, ] 를 사용하여 작성한다.표현식으로 시작하여 for 루프로 끝나는 형식을 갖추고, for문 뒤에 if문을 추가하여 조건문을 추가할 수도 있다.다음과 같은
이터레이터는 값을 순차적으로 꺼내올 수 있는 객체다. 함수로는 iter로 표현하며 dir()를 통해 iter 함수를 검색한 뒤 해당 객체가 반복 가능한지 확인이 가능 하다. 이터레이터를 변수에 저장한 후에 next함수를 호출하면 for문이 동작하는 것 처럼 값을 하나씩
파이썬에서 보통의 함수는 값을 반환하고 종료하지만, 제너레이터 함수는 값을 반환하기는 하지만 산출(yield)한다는 차이점이 있다. 쉽게 말하면 제너레이터는 iterator를 생성해주는 함수라고 볼 수 있다. 다음 코드를 확인해보자. dir로 함수 종류를 확인해보면
람다는 인라인 함수를 정의할 때 사용하며, 익명 함수(anonymous functions) 또는 람다 표현식(lambda expression)이라고도 부른다. 우리가 배웠던 함수는 다음과 같다. 람다는 함수 표현식와 다르게 이름이 존재하지 않고, 여러 줄이 존재하는
Thread는 프로그램, 특히 프로세스 안에서 실행되는 흐름의 단위다. 하나의 프로세스 안에서 여러개의 쓰레드를 만들 수 있다. 한 프로세스에 자원이 부여되면 그 안에서 프로세스에 속한 여러 쓰레드가 자원을 공유할 수 있다. 이러한 실행 방식을 멀티스레드(multith
Thread 포스트에서 마지막으로 작성한 코드는 상호 배제를 통해서 정상적으로 join()이 실행 된 것을 알 수 있으나, 계산 시간의 단축이 이루어지진 않았다. 해당 코드를 멀티스레드가 아닌 멀티프로세스(mulitprocess), 즉 진정한 병렬 프로그래밍 방식으로
어떠한 함수 안에 또 다른 함수가 있을 때, 첫번째 함수와 함수 안에 들어있는 함수를 각각 메인 루틴과 서브 루틴이라고 부른다. 예를 들어 다음과 같은 함수를 보자. calc함수에서 add함수를 호출했을 때, add함수가 끝나면 다시 calc함수로 돌아오게 된다. 이