예제를 통한 Python 리스트 이해 설명
리스트 컴프리헨션은 파이썬에서 리스트를 만드는 간결한 방법을 제공합니다. 리스트 컴프리헨션은 전통적인 루프를 사용하는 것보다 더 읽기 쉽고 종종 더 효율적입니다. 이 글에서는 리스트 컴프리헨션이 무엇이고, 어떻게 작동하는지 살펴보고, 리스트 컴프리헨션의 사용법을 설명하는 예를 제공합니다.
리스트 이해란 무엇인가?
리스트 컴프리헨션은 컬렉션의 모든 요소 또는 일부 요소를 처리하고 결과가 포함된 리스트를 반환하는 간결한 방법입니다. 리스트 컴프리헨션의 구문은 다음과 같습니다.
[expression for item in iterable if condition]
여기서 expression
은 반복의 현재 항목이지만 목록 항목처럼 되기 전에 조작할 수 있는 결과이기도 합니다. iterable
은 반복하는 컬렉션이고 condition
은 조건을 만족하는 항목만 포함하는 선택적 필터입니다.
기본 예제
사각형 목록 만들기
0에서 9까지의 숫자 제곱 목록을 만들려면 다음과 같이 목록 이해를 사용할 수 있습니다.
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)
산출:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
항목 필터링
항목을 필터링하기 위한 조건을 추가할 수도 있습니다. 예를 들어, 목록에서 짝수만 가져오려면 다음과 같습니다.
even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)
산출:
[0, 4, 16, 36, 64]
목록의 목록 평면화
목록의 목록이 있고 이를 평면화하려는 경우 목록 이해를 사용할 수 있습니다.
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)
산출:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
고급 예제
함수 적용
리스트 컴프리헨션 내에서 함수를 적용할 수 있습니다. 예를 들어, 문자열 리스트를 대문자로 변환하려면 다음과 같습니다.
words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)
산출:
['HELLO', 'WORLD', 'PYTHON']
중첩된 이해
리스트 내포는 중첩될 수 있습니다. 예를 들어, i와 j가 모두 두 리스트의 요소인 튜플(i, j)의 리스트를 만들려면 다음과 같이 합니다.
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)
산출:
[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]
결론
리스트 컴프리헨션은 파이썬에서 리스트를 생성하는 강력하고 간결한 방법을 제공합니다. 여러 줄의 루프 코드를 한 줄의 컴프리헨션으로 대체하여 코드를 단순화하고 더 읽기 쉽게 만들 수 있습니다. 리스트 컴프리헨션을 사용하는 연습을 통해 구문과 기능에 더 익숙해지세요.