리스트 컴프리헨션은 파이썬에서 리스트를 간결하게 생성할 수 있는 강력한 문법이다. 특히 if문을 결합하여 특정 조건에 맞는 값만 필터링할 수 있다.
numbers = [i for i in range(20)]
print(numbers) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]# 일반적인 반복문과 if문을 사용한 경우
odd_numbers = []
for i in range(20):
if i % 2 == 1:
odd_numbers.append(i)
print(odd_numbers) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]odd_numbers = [i for i in range(20) if i % 2 == 1]
print(odd_numbers) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]for i in range(20) if i % 2 == 1: 0부터 19까지의 숫자 중 홀수만 리스트에 추가리스트 컴프리헨션에 if문을 결합하여 특정 조건에 맞는 값만을 필터링할 수 있다.
even_numbers = [i for i in range(20) if i % 2 == 0]
print(even_numbers) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]if i % 2 == 0: 조건을 추가하여 짝수만 리스트에 포함더 복잡한 데이터 처리에도 리스트 컴프리헨션을 사용할 수 있다.
30일간의 일매출 데이터 생성:
import random
sales = [random.randint(1500, 45000) for _ in range(30)]
print(sales) # 예시 출력: [32034, 15278, 27600, ..., 21045]
random.randint(1500, 45000): 1500부터 45000 사이의 무작위 정수 생성for _ in range(30): 이를 30번 반복하여 리스트에 추가average_sales = sum(sales) / len(sales)
above_average_sales = [sale for sale in sales if sale > average_sales]
print(above_average_sales) # 예시 출력: [32034, 27600, ..., 21045]average_sales: 매출 리스트의 평균값 계산sale for sale in sales if sale > average_sales: 평균을 초과하는 매출만 리스트에 추가리스트 컴프리헨션을 사용하여 조건에 따른 값을 매핑할 수 있다.
sales_status = ["매출 달성" if sale > average_sales else "매출 목표 미달" for sale in sales]
print(sales_status) # 예시 출력: ["매출 달성", "매출 목표 미달", ..., "매출 달성"]if-else를 결합하여 조건에 따른 값 매핑