리스트 컴프리헨션과 중첩 루프는 파이썬에서 매우 강력한 기능이며 코드를 간결하게 작성하는 데 도움이 됩니다. 이러한 기능을 잘 이해하고 활용하면 반복 작업을 더 쉽고 효율적으로 수행할 수 있습니다.
리스트 컴프리헨션 (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_numbers
는 numbers
리스트의 각 항목을 제곱하여 새로운 리스트를 생성합니다. 리스트 컴프리헨션은 반복문을 사용하는 한 줄짜리 코드로 작성되기 때문에 코드의 가독성을 높이고 작업을 효율적으로 수행할 수 있는 장점이 있습니다.
중첩 루프 (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
를 사용하여 동일한 숫자끼리의 조합은 제외합니다.
리스트 컴프리헨션과 중첩 루프를 조합하여 코드를 작성하면 작업을 더 빠르고 간결하게 수행할 수 있습니다. 이러한 기능을 알고 활용하면 복잡한 작업을 간단하게 해결할 수 있습니다.
이상으로 리스트 컴프리헨션과 중첩 루프에 대해 알아보았습니다. 파이썬에서 다양한 데이터 처리 작업을 수행할 때 이러한 기능을 적절히 활용해 보세요.