리스트 컴프리헨션 (List Comprehension)
파이썬에서 간결하고 효율적으로 리스트를 생성하는 구문이다. 기존 리스트의 값을 조건에 따라 변형하거나 필터링하여 새로운 리스트를 만들 때 매우 유용하다. 리스트를 생성하는 for 루프를 한 줄로 작성할 수 있어, 코드가 짧고 가독성이 높아진다.
기본 구문
[expression for item in iterable if condition]
- expression: 리스트에 포함될 값이나 변형된 값
- item: iterable의 각 요소를 나타냄
- iterable: 반복 가능한 객체 (예: 리스트, 문자열, 튜플 등)
- condition (선택적): 각 요소에 대해 적용할 조건으로, 조건이 참일 때만 요소가 포함됨
1️⃣ 예제 1: 기본 리스트 컴프리헨션
squares = [x * x for x in range(10)]
print(squares)
출력 결과
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
- range(10)의 각 값 x에 대해 x * x를 계산하여 리스트에 추가
2️⃣ 예제 2: 조건부 리스트 컴프리헨션
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)
출력 결과
[0, 2, 4, 6, 8]
- range(10)의 각 값 중 짝수만 리스트에 포함
중첩 리스트 컴프리헨션(이중 리스트)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [item for row in matrix for item in row]
print(flat_list)
출력 결과
출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]
- 중첩된 for 루프를 사용해 2차원 리스트를 1차원 리스트로 만든다.
📌 입력을 해야 할 때
list = [map(int, input().split() for _ in range(10)]
이중 리스트일 경우
list = [list(map(int, input().split()) for _ in range(10)]
- list만 붙여주면 된다.
'알고리즘' 카테고리의 다른 글
[파이썬] replace() 메서드 (0) | 2024.10.22 |
---|---|
[파이썬] 자료 구조 - deque (0) | 2024.10.21 |
[Java] Math 클래스 주요 메서드 (0) | 2024.09.30 |
[Java] String 클래스 주요 메서드 (0) | 2024.09.29 |
[자료구조] sort, sorted, 정렬, 이중 리스트 정렬 (Python) (0) | 2023.10.31 |