Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
10-11 00:15
Archives
Today
Total
관리 메뉴

Developer_Neo

[python] 컴프리헨션(Comprehension) 본문

프로그래밍/Python

[python] 컴프리헨션(Comprehension)

_Neo_ 2022. 1. 18. 16:40
반응형

 

Comprehension의 사전적 의미

- 이해, 이해력, 포용, 포용력, 포함, 압축

 

파이썬에서의 Comprehesion

- 리스트(list), 집합(set), 딕셔너리(dictionary) 자료형에 대해 사용될 수 있다

 

방법

[ 표현식 for 변수 in iterable객체 ( if 조건식 ) ]

{ 표현식 for 변수 in iterable객체 ( if 조건식 ) }

{ 표현식(인데 key : value로) for 변수 in iterable객체 ( if 조건식 ) }

 

2. List Comprehension

[ 표현식 for 변수 in iterable객체 ( if 조건식 ) ]

A = [ ] 
for x in range(1,11): 
	A.append(x*x)  
print(A)

'''
[결과]
[1, 4, 9, 6, 25, 36, 49, 64, 81, 100]
'''

'''
List Comprehension 사용
'''
 A = [x*x for x in range(1,11)] # list comprehension
print(A)

'''
[결과]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
'''

'''
B = { 2i | 0 ≦ i ≦ 10, i는 정수}
C = { n | n ∈ A 그리고 n는 짝수 } 
'''

B = [ 2 ** i for i in range(11)] 
C = [ n for n in A if n % 2 == 0] 

'''
중첩된 반복문을 사용할 수도 있다.
'''
L = [ ] 
for x in range(1,4): 
for y in range(3,7): 
L.append(x*y) 
print(L) 


L=[x * y for x in range(1,4) for y in range(3,7)] 
print(L)


#extra
L = [3, -1, -7, 5, 10, -11, 14, 2, -8, -5] 
M = [abs(n) for n in L]

 

3. Set Comprehension

{ 표현식 for 변수 in iterable객체 ( if 조건식 ) }

L = ['grape', 'banana', 'apple', 'orange'] 
S = { x.upper( ) for x in L } 
print(S) 

'''
결과
{'BANANA', 'ORANGE', 'GRAPE', 'APPLE'}
'''

y={pow(x,2)+3 for x in range(6)}
print(y)

'''
결과
{3, 4, 7, 12, 19, 28}
'''

 

4. Dict Comprehension

{ key : value인 표현식 for 변수 in iterable객체 ( if 조건식 ) }

>>> squares = { x : x**2 for x in range(1, 6)} 
>>> squares 
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}


>> f = { x : x**2 + 1 for x in range(-3, 4) } 
>>> print(f) 
{-3: 10, -2: 5, -1: 2, 0: 1, 1: 2, 2: 5, 3: 10}




>>> T = ['서울', 15.2, '인천', 16.0, '대전', 17.3, '부산', 19]
>>> temperature={T[i]:T[i+1] for i in range(0,len(T),2)}
>>> print(temperature)
{'서울': 15.2, '인천': 16.0, '대전': 17.3, '부산': 19}

 

반응형
Comments