donut

리스트 컴프리헨션

Function

 

 

 

 

for 컴프리헨션

 

이번 포스팅은 리스트 컴프리헨션에 관한 포스팅입니다.
진행에 앞서 먼저 for문을 살펴보겠습니다

 

for문_기본

In [13]:
test1 = []
for i in range(0,10):
    test1.append(i)
test1
Out[13]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 

컴프리헨션_기본

 

for문은 많이봐서 익숙하죠 이와같은 for문은 컴프리헨션으로 작성이 가능합니다.
한번 살펴볼까요 ?

In [14]:
[i for i in range(0,10)]
Out[14]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 

왼쪽 첫번째 for문이 시작 되기전에 변수는 무시하고,
for문부터 실행이 됩니다.
가장 큰 차이점은 문장의 row!
for문은 실행 선언을 제외하고도 3줄이였는데,
컴프리헨션으로 작성한 코드는 1줄이지요 ? 물론 코드 글자도 적습니다.

 

for문_조건

조건이 있는 for문을 살펴보겠습니다.

In [15]:
test1 = []
for i in range(0,10):
    if i > 2:
        test1.append(i)
test1
Out[15]:
[3, 4, 5, 6, 7, 8, 9]
 

i가 2보다 큰것만 즉, 0,1,2 만 제외하고 리스트로 보내는 식입니다.이것을 컴프리헨션 해볼까요?

 

컴프리헨션_조건

In [16]:
[i for i in range(0,10) if i>2 ]
Out[16]:
[3, 4, 5, 6, 7, 8, 9]
 

역시 여러줄의 for문을 한줄로 요약이 가능했습니다.
간략한 코딩, 보기좋은 코딩, 이해하기 쉬운 코딩을 위해 컴프리헨션은 꼭 알고가야하는 문법입니다.

 

for문_중첩

이번엔 중첩된 for문을 살펴보겠습니다.

In [24]:
test1 = ['아침','점심','저녁']
test2 = ['라면','짜장면','짬뽕']
test3 =[]
for i in test1:
    for v in test2:
        test3.append((i , v))
test3
Out[24]:
[('아침', '라면'),
 ('아침', '짜장면'),
 ('아침', '짬뽕'),
 ('점심', '라면'),
 ('점심', '짜장면'),
 ('점심', '짬뽕'),
 ('저녁', '라면'),
 ('저녁', '짜장면'),
 ('저녁', '짬뽕')]
 

컴프리헨션_중첩

In [23]:
[(i , v) for i in test1 for v in test2]
Out[23]:
[('아침', '라면'),
 ('아침', '짜장면'),
 ('아침', '짬뽕'),
 ('점심', '라면'),
 ('점심', '짜장면'),
 ('점심', '짬뽕'),
 ('저녁', '라면'),
 ('저녁', '짜장면'),
 ('저녁', '짬뽕')]
In [ ]:
 

'Function' 카테고리의 다른 글

파이썬 Collections  (0) 2020.07.09
파이썬 Enumerate & zip  (0) 2020.07.08
파이썬 스플릿 & 조인  (0) 2020.07.07
파이썬 함수 lambda(람다)  (1) 2020.07.06