본문 바로가기
Python (Data)/이론

[python] List Comprehension- 코드 한줄로 기존 list에서 원하는 조건을 충족하는 값만으로 새로운 list 만들기

by Gina Sim 2020. 11. 25.

먼저 python의 for 반복문에 대해 모르는 분들은 아래 글 참고

 

2020/11/25 - [Python/이론] - [python] for 반복문

 

[python] for 반복문

언제 사용할까? "list, dict, set 등의 집합에 대해 반복적인 일을 수행할 때 사용" for문의 기본 구조 for 변수 in 집합 :  수행할 문장 1  수행할 문장 2  ...  ex) list의 모든 값들을 출력하고 싶다면, l.

hyunsitstory.tistory.com


List comprehension

1. list 사용
2. "for 변수 in 리스트" 이용

< 조건 필터 >

기존 list로 부터 원하는 조건을 충족하는 값들만 빼와서 새로운 리스트를 만들고 싶을 때,

그냥 for문을 사용하면

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evenlist = []	#list에서 짝수만 담아줄 list 생성

for i in list:
	if (i%2 == 0):			# i가 짝수이면
		evenlist.append(i)	# evenlist에 i값 추가

print(evenlist)


'''
결과
[2, 4, 6, 8, 10]
'''

 

list comprehension 사용하면 위의 과정을 한 문장으로 구현 가능

newlist = [ 변수 for 변수 in 기존리스트 if 조건]

1. for 변수 in 기존 리스트  ->   기존 리스트의 변수 중에서
2. if 조건  ->   조건을 만족하면
3. 변수    ->   해당 변수를 newlist의 값으로 저장

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

evenlist= [i for i in list if i%2 == 0]
print(evenlist)


''' 
결과
[2, 4, 6, 8, 10]
'''

< 가공 값 >

조건 필터뿐 아니라 변수 값을 가공하여 새로운 list 생성도 가능

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

newlist= [i*10 for i in list]
print(newlist)


''' 
결과
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
'''

 

 

 

 

반응형

댓글