list comprehenssion 2

김대현·2024년 7월 22일

리스트 컴프리헨션의 활용 방법

리스트 컴프리헨션은 파이썬에서 리스트를 간결하게 생성할 수 있는 강력한 문법이다. 특히 if문을 결합하여 특정 조건에 맞는 값만 필터링할 수 있다.

기본 예시

  1. 0부터 19까지의 리스트 생성:
    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]

  1. 0부터 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]

  1. 리스트 컴프리헨션을 사용한 경우:
    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문을 결합하여 특정 조건에 맞는 값만을 필터링할 수 있다.

  1. 짝수 리스트 생성:
    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: 조건을 추가하여 짝수만 리스트에 포함



복잡한 문제 해결

더 복잡한 데이터 처리에도 리스트 컴프리헨션을 사용할 수 있다.

  1. 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번 반복하여 리스트에 추가

  1. 평균을 초과하는 매출 찾기:
    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: 평균을 초과하는 매출만 리스트에 추가



조건에 따른 값 매핑

리스트 컴프리헨션을 사용하여 조건에 따른 값을 매핑할 수 있다.

  1. 매출 목표 달성 여부 판단:
    sales_status = ["매출 달성" if sale > average_sales else "매출 목표 미달" for sale in sales]
    print(sales_status)  # 예시 출력: ["매출 달성", "매출 목표 미달", ..., "매출 달성"]
    • if-else를 결합하여 조건에 따른 값 매핑

profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글