미식가의 개발 일기

[파이썬] 리스트 컴프리헨션 본문

Python

[파이썬] 리스트 컴프리헨션

대체불가 핫걸 2024. 7. 11. 18:37

 

리스트를 생성하기 위한 간결하고 효율적인 방법
기존의 반복문을 사용하여 리스트를 생성하는 방법보다 더 간결하게 코드를 작성할 수 있다.

기본 구조

new_list = [expression for item in iterable if condition]

 

  • expression: 각 요소에 대해 계산되어 새 리스트에 추가될 값
  • item: iterable 객체(예: 리스트, 튜플 등)에서 가져온 개별 요소
  • iterable: 순회할 수 있는 객체(리스트, 튜플 등)
  • if condition (옵션): 조건식으로, 해당 조건이 참(True)일 때에만 expression이 리스트에 추가

 

간단한 예시

  • 0 부터 9까지의 숫자 중 짝수만 들어있는 리스트
numbers = [i for i in range(10) if i % 2 == 0]
  • 각 원소가 짝수이면 '짝수', 홀수이면 '홀수'
numbers = [i for i in range(10)]
n = ['짝수' if i % 2 == 0 else '홀수' for i in numbers]

리스트 컴프리헨션 X vs 리스트 컴프리헨션 O

#리스트 컴프리헨션X
a = []
for i in range(1, 11):
	if n % 2 == 1:
		a.append(n * 2)

#리스트 컴프리헨션O
[n * 2 for i in range(1, 11) if n % 2 == 1]
#리스트 컴프리헨션X
a = {}
for key, value in original.items():
	a[key] = value

#리스트 컴프리헨션O
a = {key : value for key, value in original.items()}

람다 함수

list(map(lambda x: x + 10, [1, 2, 3])) -> [11, 12, 13]

 

반응형