[Python] 파이썬 for문과 한 줄for문 (List Comprehension) 차이

2023. 10. 30. 08:44·Python

For Loop와 한 줄 for문(List Comprehension) 차이 및 사용 방법

이 글에서는 파이썬에서 널리 사용되는 List Comprehension과 전통적인 For Loop을 비교해보며, 각각의 장단점과 사용 상황을 살펴보겠습니다 :)

파이썬의 List Comprehension은 리스트를 생성하는 간결하고 효율적인 방법입니다. 하지만 처음 배우는 사람들에게는 이해하기 어려울 수 있어, 이 글에서는 예시를 통해 List Comprehension을 쉽게 이해할 수 있도록 도와드리겠습니다 ~

기본 구조

List Comprehension의 기본 구조는 다음과 같습니다. [expression for item in iterable] 여기서 'expression'은 각 항목에 대해 실행할 표현식이고, 'iterable'은 반복 가능한 객체(예: 리스트, 튜플)입니다.

1. 한줄for문 (List Comprehension) 사용 예시

List Comprehension은 간결하고 읽기 쉬운 코드를 작성할 수 있게 해주며, 일반적으로 실행 속도도 빠릅니다. 다음은 몇 가지 예시입니다:

예제 1: 간단한 숫자 리스트 생성

squares = [x**2 for x in range(10)]
print(squares)

출력 결과:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

예제 2: 조건문을 포함하는 경우

even_squares = [x**2 for x in range(10) if x % 2 == 0]

print(even_squares)

출력 결과:

[0, 4, 16, 36, 64]

예제 3: 중첩 루프

flattened = [x for row in matrix for x in row]
print(flattened)

출력 결과:

[1, 2, 3, 4]

예제 4: 다양한 표현식

names = ['Alice', 'Bob', 'Charlie']
lengths = [len(name) for name in names]
print(lengths)

출력 결과:

[5, 3, 7]

 

2. For Loop 사용 예시

For Loop은 더 복잡한 데이터 처리나, 중첩 루프, 추가적인 로직 처리에 적합합니다. 또한, 디버깅이 용이하고, 코드의 의도를 좀 더 분명히 할 수 있습니다. 다음은 몇 가지 예시입니다:

예제 5: 정수 리스트의 제곱

    squares = []
    for x in numbers:
        squares.append(x**2)
    print(squares)
    

출력 결과:

[1, 4, 9, 16, 25]

예제 6: 조건을 사용한 필터링

    even_numbers = []
    for x in numbers:
        if x % 2 == 0:
            even_numbers.append(x)
    print(even_numbers)
    

출력 결과:

[2, 4]

예제 7: 중첩 루프

    flat_list = []
    for row in matrix:
        for num in row:
            flat_list.append(num)
    print(flat_list)
    

출력 결과:

[1, 2, 3, 4]

효율성 비교

성능 측면에서, List Comprehension은 간단한 연산에 대해 일반적으로 For Loop보다 빠릅니다. 이는 Python의 내부 최적화 때문입니다. 하지만, 복잡한 List Comprehensions는 읽기 어렵고 유지 관리하기 어려울 수 있으므로, 그런 경우에는 For Loop을 사용하는 것을 추천드립니다 ~!

가독성 및 유지 관리

가독성과 유지 관리 측면에서 볼 때, 간단하고 직관적인 연산에 대해서는 List Comprehension이 우수합니다. 반면, 복잡한 로직이나 여러 단계의 데이터 처리가 필요한 경우 For Loop이 더 명확하고 관리하기 쉽습니다 :)

최적의 사용 시나리오

결론적으로, 간단한 리스트 변환 작업에는 List Comprehension을 사용하고, 복잡한 데이터 처리나 로직이 필요할 때는 For Loop을 사용하는 것이 바람직합니다. 각 상황에 맞게 적절한 도구를 선택하여 코드의 효율성과 가독성을 최대화하는 것이 중요합니다.

추가 자료

Python 공식 문서를 참고해보세요 :)

저작자표시 비영리 변경금지 (새창열림)
'Python' 카테고리의 다른 글
  • [Python] 파이썬 while True 쉽게 이해하기
  • [Python] 파이썬 loc와 iloc의 차이점 비교
  • [Python] set과 drop_duplicates 중복 값 처리의 차이점
  • [Python] 파이썬 enumerate, zip 차이
hyunicecream
hyunicecream
안녕하세요. 여러가지 정보를 통해 조금이나마 도움이 되고자 시작하게 되었습니다.
  • hyunicecream
    Café
    hyunicecream
  • 홈
  • 포스팅 카테고리

    • 분류 전체보기
      • 생성형 AI
        • ChatGPT
        • Claude AI
        • MS Copilot
        • Perplexity
        • 생성형 AI 정보
        • 프롬프트 작성 가이드
        • AI 활용기
      • Notion
      • 업무 생산성
      • Python
        • pandas
      • 머신러닝
      • 딥러닝
      • Terminal
      • SQL
        • Postgre SQL
      • 여행정보
        • 국내여행
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hyunicecream
[Python] 파이썬 for문과 한 줄for문 (List Comprehension) 차이
상단으로

티스토리툴바