컴프리헨션 #python #tutorial
comprehension(함축)은 하나 이상의 iterator 로부터 파이썬의 자료구조를 만드는 콤팩트한 방법이다.
[표현식 for 항목 in 순회 가능한 객체]
number_list = [number for number in range(1, 6)] # [1, 2, 3, 4, 5]
number_list = [number-1 for number in range(1, 6)] # [0, 1, 2, 3, 4]
리스트 컴프리헨션은 다음과 같은 조건 표현식을 포함할 수 있다.
[표현식 for 항목 in 순회 가능한 객체 if 조건]
1에서 5까지 홀수 리스트를 만드는 예제.
a_list = [number for number in range(1, 6) if number % 2 == 1] # [1, 3, 5]
rows = range(1,4)
cols = range(1,3)
cells = [(row, col) for row in rows for col in cols]
for cell in cells:
print(cell)
{키표현식: 값표현식 for 표현식 in 순회 가능한 객체}
word = 'letters'
letter_counts = {letter: word.count(letter) for letter in set(word)}
# {'t': 2, 'l': 1, 'e': 2, 'r': 1, 's': 1}
{표현식 for 표현식 in 순회 가능한 객체}
a_set = {number for number in range(1,6) if number % 3 == 1} # {1, 4}
튜플은 컴프리헨션이 없으며 괄호를 사용하면 제네레이터 객체를 반환한다. 제네레이터는 이터레이터에 데이터를 제공하는 하나의 방법이다. 제네레이터는 값을 기억하지 않고 즉석에서 값을 생성하고, 이터레이터를 통해 한 번에 값을 하나씩 처리한다.
number_thing = (number for number in range(1, 6))
for number in number_thing:
print(number)