살짝 맛만 봤음. like 시식코너.
import pandas as pd
df = pd.read_csv('data/member.csv',encoding='cp949')
df['name']
df.iloc[3]
그냥 다시 본김에 반가워서 적어봄.
일단 적긴 하는데... 다시 보는데도 낯설다. 친해지기 어려운 타입. 나중에 다시 한번 보자.
# yield는 일단 끝났어~
# 리턴은 나 끝났다~~~
# 보통 제너레이터를 만들 때 리턴은 거의 쓰지 않는다. 일드로 보통 다 처리.
mr= my_range2(1,10)
# 함수를 호출한 것이 아님. 제너레이터를 생성한 것!
# 만들긴 함수처럼 만들었고, 함수 호출한 것처럼 작성했지만 아니다. 디스 이스 제너레이터
# 컴프리헨션이 세 종류나 있었음 리스트, 셋, 딕셔너리
[i*10 for i in range(1,10)]
{i*10 for i in range(1,10)}
{i:i*10 for i in range(1,10)}
# 튜플 만들듯이 하면 제너레이터야 뿅
g1 = (i*10 for i in range(1,10))
# 문법은 컴프리헨션이랑 똑같음. 그저 튜플처럼 소괄호로 감쌀 뿐.
# 대신 복잡한 로직은 넣을 수 없이. 왜냐 컴프리헨션이니까
# 복잡한 거 쓰고싶으면 제너레이터 함수쓰고, 이것도 부족하다.
# 이거보다 더 넣고싶다하면 이터레이블 이터레이터 써!
# 간단하고 쉬워지면 내가 할 수 있는게 적어진다. 인생사 공짜는 없다.
# 복잡하고 어려워지는 만큼 할 수 있는게 많아져.
# 그냥 리스트로 해도 되는거 아니야? 왜 제너레이터 쓰는데?
# 결과만 보자면 뭘 써도 상관없어
# 리스트 컴프리헨션은 객체가 만들어짐. 메모리 소모됨.
# 제너레이터라는 건. 실제 값을 가지고 있는 것이 아니라
#어떻게 일할지만 가지고 있는 친구. 계획만 있음.
# 달라고 할 때마다 줌. 메모리 절약 가능.
# 리스트는 필요한 값을 다 만들어 놓음.
# 제너레이터는 미리 만들어놓지 않음. 게으른 친구임. 발등에 불떨어져야 하는 스타일.
# 미리 만들어 놓냐 아니면 필요할 때 만드냐 차이 차이차이 야야야