CS 간단정리 - [2] Python - Generator

Dongwoo Kim·2022년 9월 5일
0

CS 간단정리

목록 보기
2/6

0. Iterator 란?

Iterator


for문을 이용해 오브젝트들의 개체에 접근하는 방법

ex)

for element in [1, 2, 3]:
    print(element)
for element in (1, 2, 3):
    print(element)
for key in {'one':1, 'two':2}:
    print(key)
for char in "123":
    print(char)
for line in open("myfile.txt"):
    print(line, end='')

1. Generator 란?

Generator


yield명령어를 통해 Iterator를 쉽고 강력하게 사용할 수 있는 도구

yield


함수(반복문)의 내용을 실행하다가 yield문을 만나면 해당 데이터를 반환

ex)

def reverse(data):
    for index in range(len(data)-1, -1, -1):
        yield data[index]

>>> print(reverse('golf'))
<generator object reverse at 0x0000024F9A487F90>

>>> for char in reverse('golf'):
...     print(char)
...
f
l
o
g

2. Generator Expressions

Generator Expressions


generator 함수를 따로 선언하지 않고 간결하게 리스트, 집합 등을 선언할 수 있는 표현식

ex)

>>> sum(i*i for i in range(10))                 # sum of squares
285

>>> xvec = [10, 20, 30]
>>> yvec = [7, 5, 3]
>>> sum(x*y for x,y in zip(xvec, yvec))         # dot product
260

>>> unique_words = set(word for line in page  for word in line.split())
>>> valedictorian = max((student.gpa, student.name) for student in graduates)

>>> data = 'golf'
>>> list(data[i] for i in range(len(data)-1, -1, -1))
['f', 'l', 'o', 'g']



참조)

profile
kimphysicsman

0개의 댓글