본문 바로가기
Python/Python 기초

파이썬(Python) LIST COMPREHENSION(리스트 컴프리헨션)

by healingmau 2022. 4. 26.

 

파이썬(Python) LIST COMPREHENSION

 

1. LIST COMPREHENSION

LIST COMPREHENSION (리스트 컴프리헨션)은

대괄호 [ ] 안에 표현식(계산식)과

   for문, if문을 한줄에 넣어서 리스트를

쉽고 빠르게 만들수 있는 방법입니다.

 

오픈소스, 책, 블로그에 많이 나오고,

파이썬(Python)에서

자주 쓰는 문법이이에요.

 

원본 리스트를 가지고,

다른 리스트를 만들때 사용!


2.  기본구조


[표현식 for 변수 in 순회가능객체(조건문)]

 

저는 학교에서 배운대로

정리를 하겠습니다^^

 

먼저 for문으로 코딩을 합니다.

 

그리고 대괄호 안에

for 변수 in 리스트 부분은 뒤쪽,

수행부분은 앞쪽에 써줍니다.


3. 연습하기


원본 리스트

score_list = [88, 76, 56, 91, 68]

 

1.

원본 리스트에서 7점씬 뺀 데이터로

리스트를 만들고 싶다.

 

for 반복문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ------------------------------------------------------------------------ #
 
 
score_list = [8876569168# 변수에 리스트 저장
score_list                        # 데이터가 들어갔는지 확인                   
# 결과(주석처리)
# [88, 76, 56, 91, 68]
new_score_list = []               # 빈 리스트 생성
for score in score_list :
    new_score_list.append( score - 7 ) # -7씩 뺀 값을 새로운 리스트에 저장
print(new_score_list)                  # print() 함수로 확인
# 결과(주석처리)
# [81, 69, 49, 84, 61]
 
 
# ------------------------------------------------------------------------ #
cs

 

LIST COMPREHENSION(리스트 컴프리헨션)

1
2
3
4
5
6
7
8
9
10
# ------------------------------------------------------------------------ #
 
 
[ score - 7 for score in score_list]
 
# 결과
# [81, 69, 49, 84, 61]
 
 
# ------------------------------------------------------------------------ #
cs

 

2.

점수를 제곱한 값으로

리스트에 만드세요.

 

for 반복문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ------------------------------------------------------------------------ #
 
 
new_list = []                       # 빈 리스트 생성
 
for data in score_list :
    new_list.append( data ** 2 )    # .append 리스트에 저장
 
new_list                            # 바뀌었는지 확인
  
# 결과
# [7744, 5776, 3136, 8281, 4624]
 
 
# ------------------------------------------------------------------------ #
cs

 

LIST COMPREHENSION(리스트 컴프리헨션)

1
2
3
4
5
6
7
8
9
10
# ------------------------------------------------------------------------ #
 
 
[ data ** 2 for data in score_list ]
  
# 결과
# [7744, 5776, 3136, 8281, 4624]
 
 
# ------------------------------------------------------------------------ #
cs

 

3.

스코어 리스트에서 점수가

짝수인 것만 리스트로 만드세요.

 

 for 반복문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ------------------------------------------------------------------------ #
 
 
new_score_list = []    
 
for data in score_list :
    if data % 2 == 0 :
        new_score_list.append(data)
 
new_score_list
 
# 결과
# [88, 76, 56, 68]
 
 
# ------------------------------------------------------------------------ #
cs

 

LIST COMPREHENSION(리스트 컴프리헨션)

1
2
3
4
5
6
7
8
9
10
# ------------------------------------------------------------------------ #
 
 
[ data for data in score_list if data % 2 == 0 ]
 
# 결과
# [88, 76, 56, 68]
 
 
# ------------------------------------------------------------------------ #
cs

 

4.

리스트 컴프리핸션으로 스코어가

짝수인것들은 제곱한 값으로

리스트를 만들어 보세요.

 

for 반복문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ------------------------------------------------------------------------ #
 
 
new_score_list = []
 
for data in score_list :
    if data % 2 == 0 :
        new_score_list.append( data ** 2 )
 
new_score_list
 
# 결과
# [7744, 5776, 3136, 4624]
 
 
# ------------------------------------------------------------------------ #
cs

 

LIST COMPREHENSION(리스트 컴프리헨션)

1
2
3
4
5
6
7
8
9
10
# ------------------------------------------------------------------------ #
 
 
[ data ** 2 for data in score_list if data % 2 == 0]
 
# 결과
# [7744, 5776, 3136, 4624]
 
 
# ------------------------------------------------------------------------ #
cs

댓글