[파이썬] 리스트 컴프리헨션과 중첩 루프

리스트 컴프리헨션과 중첩 루프는 파이썬에서 매우 강력한 기능이며 코드를 간결하게 작성하는 데 도움이 됩니다. 이러한 기능을 잘 이해하고 활용하면 반복 작업을 더 쉽고 효율적으로 수행할 수 있습니다.

리스트 컴프리헨션 (List Comprehension)

리스트 컴프리헨션은 반복문을 사용하여 새로운 리스트를 만드는 방법입니다. 다음은 간단한 예제입니다.

numbers = [1, 2, 3, 4, 5]
squared_numbers = [x**2 for x in numbers]
print(squared_numbers)  # [1, 4, 9, 16, 25]

위의 예제에서 squared_numbersnumbers 리스트의 각 항목을 제곱하여 새로운 리스트를 생성합니다. 리스트 컴프리헨션은 반복문을 사용하는 한 줄짜리 코드로 작성되기 때문에 코드의 가독성을 높이고 작업을 효율적으로 수행할 수 있는 장점이 있습니다.

중첩 루프 (Nested Loops)

중첩 루프는 하나의 반복문 안에 다른 반복문이 포함되는 구조입니다. 이를 통해 다차원 데이터를 다루는 등 복잡한 작업을 수행할 수 있습니다. 다음은 중첩 루프의 예제입니다.

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
result = []

for number in numbers:
    for letter in letters:
        result.append((number, letter))
        
print(result)  # [(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

위의 예제에서 numbers 리스트와 letters 리스트의 모든 조합을 result 리스트에 추가합니다. 중첩 루프를 사용하면 모든 가능한 조합을 한 번에 생성할 수 있습니다.

리스트 컴프리헨션과 중첩 루프의 조합

리스트 컴프리헨션과 중첩 루프는 함께 사용하여 더 복잡한 작업을 수행할 수도 있습니다. 다음은 리스트 컴프리헨션과 중첩 루프를 조합한 예제입니다.

numbers = [1, 2, 3]
squared_pairs = [(x, y**2) for x in numbers for y in numbers if x != y]
print(squared_pairs)  # [(1, 4), (1, 9), (2, 1), (2, 9), (3, 1), (3, 4)]

위의 예제에서 numbers 리스트의 각 숫자와 같은 리스트의 다른 숫자를 조합하여 (x, y**2) 형태의 튜플을 생성합니다. 조건문 if x != y를 사용하여 동일한 숫자끼리의 조합은 제외합니다.

리스트 컴프리헨션과 중첩 루프를 조합하여 코드를 작성하면 작업을 더 빠르고 간결하게 수행할 수 있습니다. 이러한 기능을 알고 활용하면 복잡한 작업을 간단하게 해결할 수 있습니다.

이상으로 리스트 컴프리헨션과 중첩 루프에 대해 알아보았습니다. 파이썬에서 다양한 데이터 처리 작업을 수행할 때 이러한 기능을 적절히 활용해 보세요.