반응형
파이썬에서 리스트 내포(list comprehension)는 특정 조건을 만족하는 요소들로 새로운 리스트를 만드는 간결하고 효율적인 방법입니다.
기본적인 형식은 다음과 같습니다.
[표현식 for 아이템 in 반복가능객체 if 조건]
이 구조를 사용하면, 반복 가능한 객체에서 아이템을 하나씩 가져와서, 조건을 만족하는 경우에만 해당 아이템을 가지고 표현식을 계산하여 새 리스트의 요소로 추가합니다.
예시
* 기본적인 리스트 내포 사용 예
0부터 9까지의 숫자 중에서 짝수만 포함하는 리스트를 만들고 싶다면, 다음과 같이 할 수 있습니다.
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers) # 출력: [0, 2, 4, 6, 8]
* 복잡한 표현식을 포함하는 경우
각 숫자의 제곱 값을 포함하는 리스트를 만들고 싶다면, 표현식 자리에 계산식을 넣습니다.
squares = [x**2 for x in range(10)]
print(squares) # 출력: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
* 중첩된 반복을 사용하는 경우
두 리스트의 모든 가능한 쌍을 포함하는 리스트를 만들고 싶다면, 다음과 같이 내포를 중첩할 수 있습니다.
pairs = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(pairs) # 출력: [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
리스트 내포는 코드를 더 간결하고 읽기 쉽게 만들어 주며, 종종 더 빠른 실행 속도를 제공합니다. 그러나 표현식이 너무 복잡하거나 내포가 여러 단계에 걸쳐 중첩될 때는 코드의 가독성이 떨어질 수 있으므로 적절한 사용이 중요합니다.
https://docs.python.org/2/tutorial/datastructures.html
해당 도큐먼트의 5.1.4 위치에서 Python List Comprehension에 대해 더 공부할 수 있습니다.
https://www.w3schools.com/python/python_lists_comprehension.asp
반응형
'Programming Language > Python' 카테고리의 다른 글
[matplotlib] 맷플롯립 plt.subplots() 사용법 (0) | 2024.11.14 |
---|---|
[Python/Numpy] 배열에서 고유한 요소 찾을땐 unique() 함수 (0) | 2024.11.11 |
[Python] 파이썬 올림, 반올림, 내림, 버림 / ceil, round, floor, trunc (1) | 2024.11.08 |
[Python] 코딩 기초 트레이닝 - 주사위게임3 (0) | 2024.04.03 |
[Python] 코딩 기초 트레이닝 - 간단한 논리연산 알고리즘 풀이 (0) | 2024.03.12 |