Python을 이용한 객체 지향 프로그래밍 (1)
과제 내용 설명
DataLoader 예제를 더 발전시켜서 MydataLoader2를 만들어 봅시다. data를 하나 더 늘려서 data1과 data2를 인자로 받습니다.
data1과 data2의 각 value를 제곱 하는 기능을 만들어 봅시다.(make_square) ex. data1 = [1,2,3] -> make_square -> [1,4,9]
shuffle 기능을 data1, data2 둘다 섞을 수 있도록 바꿉니다.
for loop가 돌 때마다 i번째 data1의 값과 data2의 값을 더한 값을 인쇄할 수 있게 바꿔봅시다. ex. data1 = [1,9,4] data2 = [4,1,9] -> [5,10,13]을 하나씩 리턴
우수과제로 뽑은 이유
yield를 사용한 generator를 추가로 구현해 주셔서 다른 분들에게도 도움이 될 듯 하여 선정하게 되었습니다
기존 데이터 로더
In [14]:
import random
class MyDataLoader:
def __init__(self, data):
self.size = len(data)
self.data = data
def __iter__(self):
self.index = 0
return self
def __next__(self):
if self.index >= self.size:
raise StopIteration
n = self.data[self.index]
self.index += 1
return n
def shuffle(self):
random.shuffle(self.data)방법1 (next와 next 사용)
In [16]:
In [19]:
방법2 (iter에서 yield 사용 - generator 사용)
In [17]:
In [18]:
Last updated
Was this helpful?