Programming language/Python

    [python] 집합 자료형 set()

    [python] 집합 자료형 set()

    📗 집합 set() set은 리스트와 비슷하게 볼 수 있다. 하지만 인덱스로 접근이 불가능하고, 정렬도 할 수 없다. for 문으로 하나하나 출력해봐도 그때 그때 순서가 뒤죽박죽으로 다르게 나온다. set 을 사용하는 이유는 중복이 없다 특정 원소가 있는 지 확인할 때 O(1)의 시간 복잡도를 가진다. ( 리스트의 경우 O(N) ) ex) if 원소 in 셋: 집합 관련 🔵 교집합, 합집합, 차집합 교집합: & or intersection 합집합: | or union 차집합: - or difference set1 = {1, 2, 3, 4, 5} set2 = {3, 4, 5, 6, 7} # 교집합 print(set1.intersection(set2)) # {3, 4, 5} print(set1 & set2)..

    [python] 'input.txt'로 input 받기 ( feat.sys )

    [python] 'input.txt'로 input 받기 ( feat.sys )

    📗 파일을 읽어서 input 값을 받아보자 ctrl+c, ctrl+v 는 이제 그만 🔵사용법 import sys sys.stdin = open('input.txt') for i in range(5): print(sys.stdin.readline()) input.txt: 2 4 40 30 30 50 15 1 21 3 4 5 35 5 4 3 5 98 21 14 17 32 🔵결과 2 4 40 30 30 50 15 1 21 3 4 5 35 5 4 3 5 98 21 14 17 32

    [python] F-String

    [python] F-String

    📗 F-String 코딩을 하다보면 당연히 변수와 상수(?)를 같이 써야할 때가 온다. 기존에는 이렇게 다양하게 표현했다. name = 'deok' language = 'python' print('hi, my name is ' + name + '! ' + 'I like ' + language + '.') print('hi, my name is {}! I like {}.'.format(name, language)) print('hi, my name is %s! I like %s.' % (name, language)) ## hi, my name is deok! I like python. 보다시피 가독성이 매우 안좋다. 여기서 변수가 더 많아지면... 😂 이와 같은 문제를 해결하기 위해 python 3.6 버..

    [python] filter

    [python] filter

    📗 filter python의 built-in함수로 리스트나 딕셔너리같은 iterable한 데이터를 조건에 맞는 값만 추출할 때 사용하는 함수이다. 🔵 사용법 filter(function(함수), iterable(리스트나 딕셔너리등) 🔹 함수를 넣어 사용할 때 def func(x): if x % 2 == 1: return x lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] odd_lst = list(filter(func, lst)) print(odd_lst) # >>> [1, 3, 5, 7, 9] 🔹 lambda로 사용할 때 lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] odd_lst = list(filter(lambda x: x % 2 == 1, lst)) pr..

    [python] accumulate(itertools), 누적 합

    [python] accumulate(itertools), 누적 합

    📗 accumulate 뜻으로는 축적하다? 한마디로 누적된 합을 뽑아주는 녀석 🔵 사용법 from itertools import accumulate a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = list(accumulate(a)) print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(b) # [1, 3, 6, 10, 15, 21, 28, 36, 45, 55] 값이 저절로 누적되는 것을 볼 수 있다. 이것을 왜 사용하느냐하면 사실 for문 만으로도 값을 누적한 리스트를 뽑을 수 있지만 속도면에서 큰 차이가 난다.( 특히 값이 커지면 커질수록 ) 🔵 속도 측정 1번 for문 a = [x+1 for x in range(1000000)] for i in..

    [python] defaultdict

    [python] defaultdict

    📗 defaultdict defaultdict 는 dict 의 서브 클래스이다. 이름에서 유추할 수 있듯이 기본값(default)를 설정할 수 있는 좋은 친구이다. 🔵 defaultdict 이러한 번거로움을 없애주는게 바로 defaultdict이다. defaultdict는 처음 선언할 때 다양한 기본값을 지정할 수 있다. from collections import defaultdict my_defaultdict = defaultdict(int) print(my_defaultdict) # defaultdict(, {}) my_defaultdict = defaultdict(dict) print(my_defaultdict) # defaultdict(, {}) my_defaultdict = defaultdict..