안녕하세요, 여러분! 오늘은 파이썬의 매력적인 기능 중 하나인 ‘리스트 컴프리헨션’에 대해 알아보려고 해요. 특히 리스트와 배열을 다룰 때 리스트 컴프리헨션을 어떻게 활용할 수 있는지 자세히 살펴보겠습니다. 처음 들어보시는 분들도 걱정 마세요. 쉽고 재미있게 설명해 드릴게요!
리스트 컴프리헨션이란 무엇일까요? 간단히 말해, 리스트를 만드는 간결하고 효율적인 방법입니다. 기존의 리스트나 다른 순회 가능한 객체를 기반으로 새로운 리스트를 생성할 때 사용해요. 복잡한 for 루프와 조건문을 한 줄로 압축할 수 있어서, 코드를 훨씬 더 읽기 쉽고 간결하게 만들어줍니다.
자, 이제 실제 예제를 통해 리스트 컴프리헨션의 활용법을 알아볼까요?
기본적인 리스트 생성 먼저, 1부터 10까지의 숫자 리스트를 만들어 봅시다.
numbers = [x for x in range(1, 11)] print(numbers) # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
이 한 줄의 코드는
for
루프를 사용한 것과 동일한 결과를 냅니다.조건을 포함한 리스트 생성 이번에는 1부터 20까지의 숫자 중 짝수만 포함하는 리스트를 만들어 봅시다.
numbers = [x for x in range(1, 11)] print(numbers) # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = [x for x in range(1, 21) if x % 2 == 0] print(even_numbers) # 출력: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
if x % 2 == 0
조건을 추가함으로써 짝수만 선택할 수 있게 되었습니다. 이렇게 조건문을 사용하면 원하는 요소만 쉽게 필터링할 수 있어요.
중첩 루프 사용하기 이제 조금 더 복잡한 예제를 살펴볼까요? 구구단의 결과를 리스트로 만들어 봅시다.
multiplication_table = [(x, y, x*y) for x in range(2, 10) for y in range(1, 10)] print(multiplication_table[:5]) # 처음 5개 요소만 출력 # 출력: [(2, 1, 2), (2, 2, 4), (2, 3, 6), (2, 4, 8), (2, 5, 10)]
이 예제에서는 두 개의
for
루프를 사용했습니다. 바깥쪽 루프는 2부터 9까지의 숫자를, 안쪽 루프는 1부터 9까지의 숫자를 순회합니다. 그리고 각 조합에 대해 곱셈 결과를 튜플로 만들어 리스트에 추가했습니다.
리스트 컴프리헨션의 장점은 무엇일까요? 먼저, 코드가 간결해집니다. 여러 줄의 코드를 한 줄로 압축할 수 있어 가독성이 높아져요. 둘째, 실행 속도가 일반적인 for 루프보다 빠른 경우가 많습니다. 마지막으로, 새로운 리스트를 생성할 때 매우 직관적입니다.
하지만 주의할 점도 있어요. 너무 복잡한 로직을 리스트 컴프리헨션에 담으려고 하면 오히려 가독성이 떨어질 수 있습니다. 그럴 때는 일반적인 for 루프를 사용하는 것이 더 나을 수 있어요.
여러분, 이제 리스트 컴프리헨션에 대해 어느 정도 이해가 되셨나요? 처음에는 조금 낯설 수 있지만, 사용해 보면 정말 편리하다는 것을 느끼실 거예요. 실제로 많은 파이썬 프로그래머들이 리스트 컴프리헨션을 애용한답니다.
다음에는 여러분이 직접 리스트 컴프리헨션을 사용해 볼 차례예요. 기존에 for 루프로 작성했던 코드 중 리스트를 만드는 부분이 있다면, 리스트 컴프리헨션으로 바꿔보세요. 코드가 얼마나 간결해지는지, 그리고 얼마나 파이썬스러워지는지 느껴보실 수 있을 거예요.