반응형
이전 포스팅에서 살펴본 것처럼 list comprehension은 기본적으로 for문을 사용하여 리스트를 생성한다.
자세한 내용은 아래 글에 나와있다.
[Python] List Comprehension의 이해와 예제
파이썬의 list comprehension은 리스트를 생성하기 위한 강력하고 간결한 방법을 제공한다.기본적으로 for
문을 사용하여 리스트를 한 줄로 생성할 수 있게 해준다.이제 list comprehension의 기본적인 구조
dykm.tistory.com
파이썬에서는 리스트를 생성하거나 처리할 때 for문을 사용하지 않고도 다양한 방법을 사용할 수 있다.
이번 포스팅에서는 for
문을 사용하지 않은 list comprehension에 대해 알아보자.
1. map 함수
map 함수를 사용하여 리스트의 각 요소에 함수를 적용할 수 있다.
예제: 리스트의 각 요소 제곱하기
numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, numbers))
print(squares) # [1, 4, 9, 16, 25]
2. filter 함수와 lambda 함수
filter
함수를 사용하여 리스트의 요소를 필터링 할 수 있다.
조건을 lambda
함수로 정의하여 사용한다.
예제: 짝수만 필터링 하기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4, 6, 8, 10]
3. Generator 표현식
Generator 표현식은 list comprehension과 유사하지만 리스트 대신 generator 객체를 생성한다.
필요할 때만 값을 생성해서 메모리를 절약할 수 있다.
예제: 제곱 값을 Generator로 생성하기
numbers = [1, 2, 3, 4, 5]
squares = (num ** 2 for num in numbers)
print(list(squares)) # [1, 4, 9, 16, 25]
4. functools.reduce 함수
functools.reduce
함수를 사용하여 리스트의 요소를 누적해가며 처리할 수 있다.
이 함수는 초기값과 함께 사용된다.
초기값이 없는 경우 리스트의 첫 번째 요소가 초기값으로 사용된다.
예제 1: 리스트의 모든 요소 곱하기 (초기값 x)
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product) # 120
초기값이 주어지지 않았으르모 첫 번째 요소인 1
이 초기값으로 사용된다.
예제 2: 리스트의 모든 요소 곱하기 (초기값 o)
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers, 1)
print(product) # 120
반응형
'머신 러닝 > Python' 카테고리의 다른 글
[Python] npz 파일 키 확인하는 법 (0) | 2024.08.04 |
---|---|
[Python] 파이썬에서 숫자에 콤마(,)찍어서 출력하는 방법 (0) | 2024.07.14 |
[Python] List Comprehension의 이해와 예제 (0) | 2024.07.12 |
[Python] npy, npz 파일 만들기 및 열기 (0) | 2024.06.17 |
[Python] 재귀 호출 깊이 제한 초과 에러 (RecursionError: maximum recursion depth exceeded) (0) | 2024.01.06 |