본문 바로가기

python

(12)
[TIL] #5. sys.stdin.readline() 입력을 받는 방법 알고리즘 문제를 풀다 보면 문제에서 주어진 입력을 받아 처리해야 하는 경우가 많다. Python의 경우 입력을 받을 수 있는 방법이 대표적으로 2가지가 있는데 input() 과 sys.stdin.readline() 이 그것이다. 보통 처음에 Python을 배울 때는 아마 대부분 input() 을 사용했을 것이다. 나도 이 글을 쓰기 전 까지는 그랬다. 그런데, input() 을 통해 입력받는 것이 속도가 느리다는 사실을 알게 되었고 알고리즘 문제를 풀 때 어떤 문제에서는 시간초과 이슈를 발생시키기도 한다는 사실을 알았다. 따라서, 이글에서는 input() 대신에 사용할 수 있는 sys.stdin.readline() 에 대해서 알아보고 둘 사이에 어떤 차이점이 있는지, 언제 어떤걸 쓰면 ..
[TIL] #4. sorted()와 sort() sorted()와 sort() Python에서 데이터를 정렬할 때 무엇을 써야할까? sort() sorted() 먼저 sort() 는 list() 의 메서드 중 하나이고 sorted() 는 Python의 Built-in Function이다. 위 두가지를 사용하여 데이터를 정렬했을 때 어떤 차이가 있는지 알아보자. 정렬하기 1. sort() >>> a = [5, 2, 7, 4, 1] >>> print(a.sort()) None >>> print(a) [1, 2, 4, 5, 7] sort() 로 리스트를 정렬하여 출력하면 리턴값은 None이다. 즉, sort() 는 정렬한 결과를 새로운 값으로 리턴하지 않고 in-place로 작동하여 원래 리스트의 값을 정렬한 상태로 바꿔놓기만 하는 것이다. 2. sorte..
[TIL] #3. List Comprehension List Comprehesion 이란 ? List Comprehension은 '리스트 내포'(?)로 번역(점프 투 파이썬에서 저렇게 번역함)할 수 있으며 리스트 객체를 생성하는 방법 중 하나이다. 리스트 안에 반복문과 조건문을 넣음으로써 코드를 직관적으로 보이게 하는 기법이다. 사실 Python에서 List라는 자료구조는 굉장히 사기적인(?) 자료형이라고 생각하는데 이런 자료형을 잘 다루는 것처럼 보이게 하는 좋은 방법인것 같다.🥴 2개 이상의 반복문을 사용하는 것도 가능하지만, 코드가 복잡해지고 직관적이지 못하기 때문에 최대 2개까지만 쓰는 것이 좋다고 한다. 문법은 다음과 같다. [표현식 for 항목 in 반복 가능 객체 if 조건]if는 조건이 필요한 경우에만 사용하면 된다. 사용하기..
[Python] venv로 가상환경 관리하기 Intro 보통 머신러닝 프로젝트를 할 때 가상환경을 만들어서 프로젝트마다 Python Interpreter를 달리하여 진행한다. 프로젝트마다 필요한 패키지가 다르고 버전 호환 문제 등 여러 이유로 인해 가상환경을 구축하는 것이 일반적이다. Python을 사용하는 사람이라면 보통 Anaconda를 이용하여 패키지 관리나 가상환경 관리를 해봤을 것이다. 나 또한 처음에 데이터 분석 프로젝트를 할 때 Anaconda를 사용하여 개발환경을 구축했었다. 하지만, Anaconda에서 default로 설치되는 패키지들 중에는 내가 필요한 패키지 이외의 것들이 많이 포함되어 있어 무거운 느낌이 들었다. 좀 더 가볍고 깔끔한(?) 가상환경에서 작업을 하고 싶었던 터라 Python에서 기본으로 제공하는 venv를 이용하..