반응형
파이썬의 list comprehension은 리스트를 생성하기 위한 강력하고 간결한 방법을 제공한다.
기본적으로 for문을 사용하여 리스트를 한 줄로 생성할 수 있게 해준다.
이제 list comprehension의 기본적인 구조와 예제를 살펴보자.
List Comprehension의 기본 구조
List comprehension의 기본 구조는 다음과 같다.
[표현식 for 항목 in iterable]
이 구조에서 각 요소에 대한 설명은 아래와 같다.
- 표현식: 각 항목에 적용되는 계산이나 값을 나타냄
- 항목: iterable(반복 가능한 객체)에서 가져온 요소를 나타내는 변수
- iterable: 리스트, 튜플, 문자열 등 반복 가능한 객체
이제 예제를 통해 list comprehension에 대해 알아보자.
예제
몇 가지 예제를 일반적인 방법과 list comprehension을 사용하여 간단하게 표현하는 방법을 알아보자.
예제 1: 리스트의 각 요소 제곱하기
# 일반적인 방법
numbers = [1, 2, 3, 4, 5]
squares = []
for num in numbers:
squares.append(num ** 2)
print(squares) # [1, 4, 9, 16, 25]
# List comprehension 사용
numbers = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in numbers]
print(squares) # [1, 4, 9, 16, 25]
예제 2: 문자열 길이 구하기
# 일반적인 방법
words = ["apple", "banana", "cherry", "date"]
word_lengths = []
for word in words:
word_lengths.append(len(word))
print(word_lengths) # [5, 6, 6, 4]
# List comprehension 사용
words = ["apple", "banana", "cherry", "date"]
word_lengths = [len(word) for word in words]
print(word_lengths) # [5, 6, 6, 4]
조건을 추가한 List Comprehension
List comprehension을 사용할 때 조건을 추가하여 필터링할 수도 있다.
# 조건을 추가하지 않은 예제
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers) # [2, 4, 6, 8, 10]
이 예제에서 if num % 2 == 0은 리스트에 포함되는 조건을 나타내며, 짝수인 경우에만 해당 요소가 새 리스트에 포함되는 것이다.
List Comprehension의 장점
- 간결함: 반복문을 한 줄로 표현할 수 있어 코드가 간결해짐
- 성능: 일반적으로 list comprehension을 사용하는 것이 기본 반복문보다 빠름
- 가독성: 간단한 경우 가독성이 더 좋음
List comprehension은 파이썬에서 매우 유용하게 사용되며, 다양한 데이터 처리 작업을 간단하게 처리할 수 있도록 도와준다.
다음 포스팅에서는 for문을 사용하지 않은 방법을 살펴보자.
반응형
'머신 러닝 > Python' 카테고리의 다른 글
| [Python] 파이썬에서 숫자에 콤마(,)찍어서 출력하는 방법 (0) | 2024.07.14 |
|---|---|
| [Python] for문을 사용하지 않은 List Comprehension 예제 (1) | 2024.07.12 |
| [Python] npy, npz 파일 만들기 및 열기 (0) | 2024.06.17 |
| [Python] 재귀 호출 깊이 제한 초과 에러 (RecursionError: maximum recursion depth exceeded) (0) | 2024.01.06 |
| [Python] 재귀 함수(Recursive Function)와 동적 계획법(Memoization) 사용 예제(이항계수) (1) | 2024.01.03 |