분류 전체보기 766

선언 전 메모리절약, range, getsizeof

파이썬 코딩을 할때 유용한 팁으로 원하는 값을 미리 생성하느냐 아니면 문법으로 정의해 놓고 필요할때 마다 빼는 방식이냐에 따라 메모리 사용량이 달라 진다. 아래 예제 코드를 살펴 보도록 하자 import sys a_var = range(30) b_var = list(a_var) c_var = [i for i in range(30)] print(a_var) print(b_var) print(c_var) print(len(a_var)) print(len(b_var)) print(len(c_var)) print(sys.getsizeof(a_var)) print(sys.getsizeof(b_var)) print(sys.getsizeof(c_var)) 결과>> range(0, 30) [0, 1, 2, 3, 4, ..

yield, next 란

파이썬 문법 중 yield와 next가 있다. 일반적으로 함수에서 값을 뽑아 낼때는 return으로 값을 보내 준다. 그리고 생성된 함수는 값을 return 함으로서 역할을 종료 한다. 가령 while 문이 무한으로 돌고 있어도 return을 맞이하면 종료 한다. yield는 값을 보내줄때 사용하는데 return 과 다른 점은 함수의 종료가 아닌 지속적으로 보내 줄 수 있다. 이때 값을 받을 수 있는 방식이 next이다. 아래 예제를 통해 이해해 보도록 하자. def func_yield(): a_var = 2 yield a_var while True: a_var = a_var + 1 yield a_var b_var = func_yield() c_var = func_yield() print(next(b_v..

list comprehension, for if문 써서 한줄로 list 만들기

파이썬 예제들을 살펴 보면 한줄로 for문 if문을 사용해서 list를 만드는 것을 볼 수 있다. 효율적인 코딩을 위해 사용하는 방식으로 아래 파이썬 예제를 통해 이해해 보자. 아래 코드는 여러 리스트들 중에 가장 작은 숫자를 찾는 예제이다. yValues0 = [6,13,8,7] yValues1 = [9,6.5,40,6,12] yValues2 = [8,7,3,1] yUpperLimit = 30 yAll = [yValues0, yValues1, yValues2] minY = min([y for yValues in yAll for y in yValues]) maxY = max([y for yValues in yAll for y in yValues if y < yUpperLimit]) print(minY) ..

multiple plot in one figure (여러 plot 한 화면에 표기)

해당 코드는 아래 참조 링크에서 가져왔다. 아래는 코드, 코드 해석, 결과 화면이다. import matplotlib.pyplot as plt def make_patch_spines_invisible(ax): ax.set_frame_on(True) ax.patch.set_visible(False) for sp in ax.spines.values(): sp.set_visible(False) fig, host = plt.subplots() fig.subplots_adjust(right=0.75) par1 = host.twinx() par2 = host.twinx() # Offset the right spine of par2. The ticks and label have already been # placed..

lambda, map 함수

lambda 인자 : 표현식 map(함수, 리스트) lambda와 map은 위 와같은 표현을 따른다. 두 함수는 같이 연계해서 사용하기 편해서 같이 설명한다. 예제를 통해 이해해보도록 하자 bb = (lambda aa: aa*2)(3) cc = map(lambda aa: aa*2, range(3)) dd = list(map(lambda aa: aa*2, range(3))) print(bb) print(cc) print(dd) 결과 6 [0, 2, 4] 람다는 인자 값을 받아서 표현식에 맞춰 실행해 준다. 이때 인자 값은 여러개를 한번에 넣을 수도 있다. map 함수는 리스트로 받은 값을 함수에 하나씩 실행해 준다. 여기서 range(3)은 [0,1,2]의 리스트와 동일하다. map으로 끝내면 해당함수의 ..

파일 처리 - 읽기 모드

파이썬에서 파일을 읽거나 쓰거나 만들때 open() 이라는 function을 사용합니다. open()은 파이썬에 이미 내장된 function으로 따로 library를 추가 (import) 하지 않고 사용 가능합니다. open()의 괄호 안에는 두 개의 인자 값을 넣을 수 있습니다. 첫 번째는 filename이고 두 번째는 용도를 선언하는 값입니다. 파일 객체 = open("파일명", "모드") 두 번째 인자 값인 mode는 아래와 같이 4 종류가 있습니다. r 읽기 a 추가 w 쓰기 x 새로 만들기 읽기 Mode f = open("file_ex.txt", "r", encoding = "utf-8") print(f.read()) 위 예에서처럼 파일을 읽어 올 때 r 을 사용해서 읽으면 됩니다. 이때 문서에..