Developer_Neo
[python] 컴프리헨션(Comprehension) 본문
반응형
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}
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[python] 제너레이터 함수 (0) | 2022.01.18 |
---|---|
[python] Iterable객체와 Iterator객체 (0) | 2022.01.18 |
[python] 가비지컬렉션과 레퍼런스 카운트 (0) | 2022.01.18 |
[python] __iter__( ), __next__( ) (0) | 2022.01.17 |
[python] __메소드__ 정리 (0) | 2022.01.17 |
Comments