본문 바로가기

Programming/Python46

generator - 제너레이터 제너레이터는 파이썬의 시퀀스를 생성하는 객체다 전체 시퀀스를 한 번에 메모리에 생성하고 정렬할 필요없이, 잠재적으로 아주 큰 시퀀스를 순회할 수 있다 제너레이터를 순회할 때마다 마지막으로 호출된 요소를 기억하고 다음 값을 반환한다 제너레이터 함수는 yield문을 사용한다 2020. 8. 18.
숫자 출력 시 width에 맞춰서 앞에 0 채우기 앞에 0을 채워서 스트링 길이를 width에 맞추기 >>> '3'.zfill(5) >>> '%05d'% 3 >>> format(3,'05') >>> '{0:05d}'.format(3) >>> '{n:05d}'.format(n=3) >>> '3'.rjust(5,'0') '00003' 2020. 7. 28.
python eval(), exec() - 문자열코드 실행 문자열로 표현된 코드를 실행할 때 사용 # eval() - 대입문 안됨 >> s = "'abc'.upper()" >> eval(s) 'ABC' >>> ss="b='abc'.upper()" >>> eval(ss) Traceback (most recent call last): File "", line 1, in File "", line 1 b='abc'.upper() ^ SyntaxError: invalid syntax # exec() - 대입문 가능 >>> exec(ss) >>> b 'ABC' 2020. 7. 17.
math 분수 계산 python 에서 분수 계산하기 - fraction >>> from fractions import Fraction >>> Fraction(1, 2) # Fraction(분자, 분모) Fraction(1, 2) >>> Fraction(1/3) # Fraction(분자/분모) Fraction(1, 3) >>> Fraction('1/4') # Fraction('분자,분모') Fraction(1, 4) >>> Fraction('1.8') # Fraction('유리수') Fraction(9, 5) >>> Fraction(2,8) # 알아서 기약분수로 변환 Fraction(1, 4) >>> Fraction(5) # 분자만 쓰면 분모는 1로 자동 입력 Fraction(5, 1) 분수 곱셈 reduce를 활용하여 분수.. 2020. 7. 3.
python print - sep, end python print print 문 sep, end 옵션 사용법 list_s = ['a','b','c'] print(list_s) >>> ['a','b','c'] print(*list_s) >>> a b c # sep: print 출력문 사이에 해당 내용을 넣을 수 있다 # default: seq=' ' print(*list_s, sep='__') >>> a__b__c print(*list_s, sep='') >>> abc # end: print 출력문 마지막에 해당 내용을 넣을 수 있다 # default: end='\n' print(*list_s, end='__') >>> a b c__ Buy me a coffee 2020. 7. 2.
python 에서 변수 비교하기 `==` or `is` python 의 ==, is 비교 == : 값을 비교 is : 메모리를 비교 >>> x,z = 1,1 >>> z == x True >>> z is x True >>> x,z = 300,300 >>> x == z True >>> x is z False 변수가 1 일때는 ==, is 모두 True 변수가 300 일때는 is는 False 파이썬은 정수 -5 ~ 256을 특정 메모리에 저장 해두고, 변수 생성시 참조를 통해 사용한다 그래서 300은 서로 다른 메모리를 참조해서 False가 된다 Buy me a coffee 2020. 6. 30.
문자열 거꾸로(reverse) 시키기 python에서 문자열 거꾸로 출력하기, 4가지 방법 reversed(), list.reverse(), [::-1], deque() # list.reverse(), source list가 바뀜 s = "abcdefg" s_list = list(s) s_list.reverse() print(s_list) ['g', 'f', 'e', 'd', 'c', 'b', 'a'] # reversed(), 뒤집힌 list를 반환함 s = "abcdefg" reversed_s_list = reversed(s) print(reversed_s_list) gfedcba # [::-1], 뒤집힌 list를 반환함 s = "abcdefg" reversed_s_list = s[::-1] print(reversed_s_list) gf.. 2020. 6. 29.
dict 에서 value max인 key, value값 찾기 dict 에서 value max인 key, key value 찾기 >>> d = {'b': 3, 'a': 2, 'c': 2} >>> max(d.values(), key=lambda k: d[k]) 2 >>> max(d.keys(), key=lambda k: d[k]) 'b' >>> max(d, key=lambda k: d[k]) 'b' >>> max(d.items(), key=lambda k: k[1]) ('b', 3) 2020. 6. 28.
Array(list)의 원소 개수 카운팅 collections 의 defaultdict로 배열의 엘러먼트 카운트를 하나의 함수도 대신하기 collections.Counter를 사용하면된다 from collections import defaultdict s = ['a', 'b', 'c', 'b', 'a', 'b', 'c'] dd = defaultdict(int) for k in s: dd[k]+=1 print(dd) defaultdict(, {'a': 2, 'b': 3, 'c': 2}) >>> from collections import Counter >>> d = Counter(s) >>> print(d) Counter({'b': 3, 'a': 2, 'c': 2}) 2020. 6. 27.