파이썬의 자료구조(list, dictionary, set)에 데이터를 좀 더 쉽고 간결하게 담기 위한 문법
컴프리헨션 문법의 진가는 if문과 중첩 for문을 사용할 수 있다
는 것에 있음
data = []
data.append(1)
data.append(2)
…
data.append(9)
data.append(10)
data = []
for i in range(1, 11):
data.append(i)
data = list(range(1,11))
data = [i for i in range(1, 11)]
🡆 위의 리스트에서 짝수 값만 저장하고 싶다면?
data = []
for i in range(1, 11):
if i % 2 == 0:
data.append(i)
→ 단 1줄로 표현 가능
data = [i for i in range(1,11) if i%2 == 0]
data = [i for i in range(1, 11) if i%2 == 0 if i < 5]
→ 1부터 10까지의 숫자 중 5보다 작은 짝수를 리스트에 저장
data = [(x, y) for x in range(1, 6) for y in range(1, 4)]
# for문과 비교해봅시다.
data2 = []
for i in range(1, 6):
for j in range(1, 4):
data2.append((i, j))
# 출력결과
[(1, 1), (1, 2), (1, 3),
(2, 1), (2, 2), (2, 3),
(3, 1), (3, 2), (3, 3),
(4, 1), (4, 2), (4, 3),
(5, 1), (5, 2), (5, 3)]
data = [(x, y) for x in range(1, 4) for y in range(1, 4) if x % 2 == 1 if y > 1]
# 출력결과
[(1, 2), (1, 3), (3, 2), (3, 3)]
https://tibetsandfox.tistory.com/25 읽고 내용 정리