리스트 컴프리헨션이란?
'리스트 안에 표현식(계산식)과 for문, if문을 한줄에 넣어서 새로운 리스트를 만드는 것'을 말한다.
예시 코드
1)
numbers = []
for n in range(1, 10+1):
numbers.append(n)
# 리스트 컴프리헨션
>>> [x for x in range(10)]
2)
>>> [ (x, y) for x in ['쌈밥', '치킨', '피자'] for y in ['사과', '아이스크림', '커피']]
[('쌈밥', '사과'),
('쌈밥', '아이스크림'),
('쌈밥', '커피'),
('치킨', '사과'),
('치킨', '아이스크림'),
('치킨', '커피'),
('피자', '사과'),
('피자', '아이스크림'),
('피자', '커피')]
3)
>>> [3 * x for x in range(1, 11)]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
>>> [x ** 2 for x in range(1, 16)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225]
4) 조건문을 더한 경우
even_numbers = []
for n in range(1, 10+1):
if n % 2 == 0:
even_numbers.append(n)
# 리스트 컴프리헨션
>>> [x for x in range(1, 10+1) if x % 2 == 0]
[2, 4, 6, 8, 10]
댓글