Programming Language(26)
-
[python] 사전의 기본값 처리 collections.defaultdict
사전의 기본값 처리 collections.defaultdict 일반적인 dictionary 기본값 처리 숫자 리스트 li = [1,1,2,2,2,3,3,5] 의 출현 횟수를 count하는 경우를 생각해 봅시다. 딕셔너리를 이용해 구할 수 있습니다. 포문을 돌며 딕셔너리에 해당 값이 없을 경우엔 i가 키인 값을 0으로 초기화 해주고 모든 경우에 += 1 해줍니다. li = [1,1,2,2,2,3,3,5] dict = {} for i in li: if i not in dict: dict[i] = 0 dict[i] += 1 print(dict) """ {1: 2, 2: 3, 3: 2, 5: 1} """ if문을 사용해 존재하지 않는 키에 대한 값을 초기화 해주는 이유는 존재하지 않는 키에 접근했을 경우 다음과..
2021.02.16 -
[Python] input()과 sys.stdin
sys.stdin 알고리즘 문제를 풀 때, 파이썬의 input()은 실행시간이 느려서 자주 시간초과가 난다. 이럴때 sys모듈의 stdin을 사용하면 더 빠르게 input이 가능하다.. 고 하는데, 나는 input()과 sys.stdin의 차이점을 알고싶었다. input() vs sys.stdin input() input() 파이썬의 내장함수이고, 공식 문서의 'Built in function'에가면 해당 내용을 읽어 볼 수 있다. input()에 대한 파이썬 공식 문서 If the prompt argument is present, it is written to standard output without a trailing newline. The function then reads a line from ..
2021.02.09 -
[Python] 파이썬에서 아스키코드 변환 (chr(), ord())
문자 -> 아스키코드 : chr() 아스키코드 -> 문자 : ord() chr() print(chr(65)) print(chr(122)) """ A z """ ord() print(ord('A')) print(ord('z')) """ 65 122 """ 아스키(ASCII) 코드 표
2021.02.07 -
[Python] zip()
Python 내장함수, zip(*iterables) zip(*iterables) zip()은 동일한 개수로 이루어진 자료형을 묶어주는 역할을 한다. 제너레이터로 리턴 되기 때문에, list나 dic 등 으로 변환 해 주어야 한다. list1 = [1,2,3] list2 = ["홍길동", "김철수", "박미애"] zip_list = zip(list1, list2) print(zip_list, type(zip_list)) # 제너레이터로 리턴 print(list(zip_list)) # 리스트로 변환 # dictionary로 변환 dic ={} for i, s in zip(list1, list2): dic[i] = s print(dic) """ [(1, '홍길동'), (2, '김철수'), (3, '박미애')]..
2021.01.26 -
[Python] heapq 모듈
heapq 모듈 힙 자료구조 heapq모듈은 이진 트리(binary tree)기반의 최소 힙(min heap)자료구조 제공. min heap을 사용하면 원소들이 항상 정렬된 상태로 삽입, 삭제되며 min heap에서 가장 작은 값은 언제나 인덱스 0, 즉 이진트리의 루트에 위치. heap 자료구조를 이용해 데이터를 정렬하려면 heap[0]를 루프를 돌아 heappop() 해주면 된다. 모듈 임포트 import heapq 최소 힙 (min heap) 생성 heap = [] 별개의 자료구조가 아닌 리스트를 힙처럼 다룰 수 있도록 하는 것 힙에 원소 추가 - heappush() heap모듈의 heappush()함수를 이용하여 원소를 추가 할 수 있다. 첫번째 인자는 원소를 추가할 대상 리스트이며 두번빼 인자는..
2021.01.19 -
[Python] Call by.. What?
Python은 Call by assignment 이다. Call by assignment (Call by object reference) 파이썬은 immutable(불변) 자료형일 경우 call by value 처럼 처리되고, mutable(가변) 자료형일 경우 call by reference처럼 처리 된다. 이를 call by assignment 또는 call by object reference 라고 부른다. call by value, reference 파이썬의 객체(object)에 대한 이해 파이썬은 모든것이 객체(Object)이다. 라는 말, 파이썬을 배운 사람이라면 한번쯤은 들어 봤을 것이다. 과연 무슨 뜻일까? a = 10 파이썬에선 a에 10이 할당되는 것이 아니라, a가 10이라는 상수 객체..
2021.01.15