PythonNewFunction중 한가지. [[Generator]]구문. 2.4버젼부터 등장. [[NoSmoke:지원]] 씨 작성~ list compression과 유사하지만, 한번에 다 계산하지 않고 그때그때 계산된다는점이 특징. 주사위 두개를 던졌을 때, 그 합이 홀수가 되는 숫자쌍을 알고싶다고 할때, list comprehension을 쓰면, {{{#!python >>> [(x,y) for x in (1,2,3,4,5,6) for y in (1,2,3,4,5,6) if (x+y)%2==1] [(1, 2), (1, 4), (1, 6), (2, 1), (2, 3), (2, 5), (3, 2), (3, 4), (3, 6), (4, 1), (4, 3), (4, 5), (5, 2), (5, 4), (5, 6), (6, 1), (6, 3), (6, 5)] }}} 로 한줄에 표현가능. 그러나, list comprehension은 결과물이 [[Iterator]]가 아니다. 즉, 모든 결과물을 한번에 계산하고, 계산결과를 메모리상에 가지고 있다가 한번씩 내뱉는셈. [[Generator]]는 이 단점을 극복. 한 iteration에 한번만 계산한다. 훨씬 메모리상 효율이 좋다. {{{#!python >>> [(x,y) for x in (1,2,3,4,5,6) for y in (1,2,3,4,5,6) if (x+y)%2==1] # list comprehension >>> ((x,y) for x in (1,2,3,4,5,6) for y in (1,2,3,4,5,6) if (x+y)%2==1) # GeneratorExpression }}}