When will you grow up?

List Comprehension(리스트 컴프리헨션) 본문

02. Study/Python

List Comprehension(리스트 컴프리헨션)

미카이 2018. 1. 12. 20:03

python을 하다보면 이러한 코드를 볼경우가 발생한다


ex) list_a = [2*x for x in range(10)]


List Comprehension이란?

 - 반복적인 객체(object)를 이용하여 리스트(list)를 효율적으로 만들 수 있는 경우에 사용을 하며,

   실제로 리스트 크기가 큰 경우에도 간단할 뿐 아니라 속도 측면에서도 빠른것을 확인 할 수 있다.


예를들며 살펴보도록 하자.


1
2
3
4
5
6
7
8
9
10
11
12
13
"""
일반적인 List 값 넣기
"""
 
list_a = []              # 빈 list_a 생성
 
for x in range(5):       # 0~4까지 반복하면서 for loop가 돈다.
    list_a.append(4*x)   # (4*x) 을 list_a에 넣는다
list_a
 
#output : [0, 4, 8, 12, 16]
 
 
cs

 

위 예제처럼 list_a에 값을 넣어서 줄수도 있다.


하지만 List Comprehension을 이용하면 간단하게 만들 수 있다.


 

1
2
3
4
5
6
7
"""
List Comprehension Practice
"""
 
list_a = [(4*x) for x in range(5)]              # list comprehension
 
#output : [0, 4, 8, 12, 16]
cs


정말 간단하지 않나? 그 외에도 다른 조건문도 넣어서 처리 할 수도 있다.


1
2
3
4
5
6
7
"""
if문을 활용한 List Comprehension Practice
"""
 
list_a = [(4*x) for x in range(5if x%4==0]              # x가 4로 나눴을 경우 나머지가 0인 값만 list_a에 넣는다
 
#output : [0, 16] - x가 0일경우와 4일경우에만 해당되므로..
cs


Comments