본문 바로가기

728x90

python

(22)
[tqdm] tqdm 진행바에 설명 추가하기 (set_description, set_postfix) tqdm 라이브러리를 사용하면 코드의 진행 상태를 진행바(progress bar)로 확인할 수 있어 매우 편리하다. 특히 시간이 오래 걸리는 코드같은 경우 종종 정말 이 코드가 돌아가고있는게 맞는건지 멈춘건 아닌지.. 대체 어느정도 더 기다려야하는지 의문일 때 tqdm 라이브러리는 매우 유용하다. 사용방법도 매우 간단하다. 아래와 같이 tqdm 라이브러리를 설치해준 후 !pip install tqdm 다음과 같이 코드를 돌려보면 a = range(10000000) for _ in tqdm(a) : continue 이렇게 진행상황을 살펴볼 수 있다. 주로 학습을 할 때 학습이 어느정도 진행되었는지 확인하는 용으로 많이 사용한다. tqdm은 단순하게 진행 상태만 확인할 뿐만 아니라 간단한 설명을 추가하여 현..
[Python] asterisk - 가변인자 역할 asterisk의 Unpacking 역할에 이어 가변인자 역할에 대해 알아보자! (unpacking에 대해 궁금하신 분들은 여기!) 함수를 만들다 보면 인자의 개수가 정해지지 않은, 매번 다른 경우가 있을 수 있다. 보통 함수를 정의할 때 함수의 파라미터 이름을 직접 지정해주어야 하는데 이렇게 길이가 매번 다른 경우는 어떻게 할 수 있을까? 바로 asterisk가 이 역할을 해준다! 아주 간단한 예제를 살펴보자! def test(*args) : print(args) >>> test(1, 2, 3) (1, 2, 3) >>> test(1, 2, 3, 4, 5) (1, 2, 3, 4, 5) 그러나 *args의 경우에는 여러 개의 변수를 넘길 수는 있지만 각각의 값에 대한 이름은 붙일 수가 없다..! 따라서 가..
[Python] asterisk - Unpacking의 역할 asterisk는 바로 * 를 의미한다. *를 보면 아마 대부분 가장 먼저 곱하기 연산이 생각날 것이다. (또는 ** 제곱연산?) 그러나 *는 그 외에도 다양한 역할을 하는데 그 중 하나는 바로 unpacking의 역할이다. tuple이나 dict와 같은 자료형에 있는 값들을 unpacking 할 수 있는데 이 말로는 잘 이해가 안갈 수 있으니 예제를 살펴보자 unpacking이 많이 사용되는 부분 중 하나는 바로 print함수이다. 다음과 같은 리스트가 있을 때 *를 통해 리스트로 묶인 값을 unpacking 해줄 수 있다. >>> a = [1, 2, 3, 4, 5] >>> print(a) [1, 2, 3, 4, 5] >>> print(*a) 1 2 3 4 5 이는 코딩 테스트 연습을 할 때도 매우 유..
[BOJ] 11725. 트리의 부모 찾기 (Python) 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 트리의 부모 찾기 문제! 방법은 간단하다. 먼저 각 트리에게 연결 된 노드들의 정보를 저장한다. 루트 노드는 무조건 1번 노드로 정해져있으니 1번노드를 시작으로 DFS 또는 BFS로 순회를 하면 각 노드의 부모 노드를 한 번에 찾을 수 있다. * DFS의 경우 recursion limit을 설정해두어야 한다. import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline n = int(input()) tree = [[] for _ in range(n+1)] parents..
[Python] max 내장 함수와 선택인자(key, default) 내장 함수 — Python 3.10.0 문서 내장 함수 파이썬 인터프리터에는 항상 사용할 수 있는 많은 함수와 형이 내장되어 있습니다. 여기에서 알파벳 순으로 나열합니다. abs(x) 숫자의 절댓값을 돌려줍니다. 인자는 정수, 실수 또는 __ docs.python.org 파이썬 내장 함수 중에는 최댓값을 알아서 찾아주는 max()가 있다. 굳이 내가 최댓값을 찾는 코드를 짜지 않아도 되니 간단하지만 너무 편리하고 좋은 기능:) max는 다음과 같이 배열 안에 있는 여러 값들 중 가장 큰 값을 찾아주기도 하고, 두 값 중 더 큰 값을 비교해서 찾아주기도 한다. (반대로 작은 값을 찾을 때에는 min) >>> max([1, 2, 3, 4, 5]) 5 >>> max(3, 5) 5 오늘 이 글을 쓰는 이유는 다..
[Python 3.x] 바이트 스트림(byte-stream) 객체의 등장 Yelp Dataset을 csv로 변환하는 코드가 python 2.x로 짜여있어서 만나게 된 오류..! 파이썬 코드를 돌리다보면 2.x와 3.x 간의 버전 차이로 오류가 나는 부분이 상당히 자주 있다. 예전에는 단순히 구글링해서 코드만 돌아가게 바꾸고 넘어갔는데 어떤 차이 때문에 발생한건지 이해하면 더 좋을 것 같아서 정리해본다. 오늘 내가 만난 오류는 바로 아래와 같다. TypeError: a bytes-like object is required, not 'str' 이는 바로 3.x에서는 "바이트 스트림 문자열 상수(리터럴)"가 생겼기 때문이라고 한다. 많은 함수들이 기존 문자열 대신 이 바이트 스트림을 사용하고 있다고 한다. 그렇다면 바이트 스트림(Byte-stream)이란 무엇일까? 말 그대로 바이..

728x90