반응형
파이썬 기본 문법 - Comprehension 컴프리핸션
Comprehension 이란
반복되거나 특정 조건을 만족하는 리스트를 보다 쉽게 만들어 내기 위한 방법입니다.
예제 1 - Comprehension 미적용 / 적용 비교
# Case 1) Comprehension 미적용
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
data1 = []
for i in range(11):
data1.append(i)
print(data1)
# Case 2) Comprehension 적용
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
data2 = [i for i in range(11)]
print(data2)
예제 2 - Comprehension 적용 - 조건문 추가
#Case 3) Comprehension 적용 - 조건문 추가
# 짝수인 경우, 그대로 들어가고 홀수인 경우 x 10 이 들어감
# [0, 10, 2, 30, 4, 50, 6, 70, 8, 90, 10]
data3 = [i if i % 2 == 0 else i*10 for i in range(11)]
print(data3)
예제 3 - Comprehension 적용 - 중첩 반복문
#Case 4) Comprehension 적용 - 중첩 반복문
# ['ha', 'hn', 'hd', 'ea', 'en', 'ed', 'la', 'ln', 'ld', 'la', 'ln', 'ld', 'oa', 'on', 'od']
str1 = 'hello'
str2 = 'and'
data4 = [i + j for i in str1 for j in str2]
print(data4)
예제 4 - Comprehension 미적용/적용 - enumerate
#Case 5) Comprehension 미적용 - enumerate 사용
data5 = [10,30,20,50,70,40]
for index, value in enumerate(data5):
print(index, value)
#Case 6) Comprehension 적용 - enumerate 사용
str = 'it is a good day'
data6 = {i : v for i, v in enumerate(str.split())}
#{0: 'it', 1: 'is', 2: 'a', 3: 'good', 4: 'day'}
print(data6)
예제 5 - Comprehension 미적용/적용 - zip
#Case 6) Comprehension 미적용 - zip 사용
data7_1 = ['lee', 'choi', 'kim', 'ch']
data7_2 = [10, 30, 60, 90]
for l1, l2 in zip(data7_1, data7_2):
print(l1, l2)
#Case 7) Comprehension 적용 - zip 사용
data7 = {k : v for k, v in zip(data7_1, data7_2)}
print(data7)
반응형
'파이썬 > 파이썬 기본 문법' 카테고리의 다른 글
파이썬 기본 문법 - lambda 익명함수 (0) | 2021.08.30 |
---|---|
파이썬 기본 문법 - Generator(제네레이터) - yield (0) | 2021.08.30 |
파이썬 기본 문법 - range() 함수 - __iter__() 함수, __next__() 함수 (0) | 2021.08.30 |
파이썬 기본 문법 - 문자열 분리 & 합치기 - split(), join() - list to string (0) | 2021.08.30 |
파이썬 기본 문법 - 출력 (end=, sep=) (0) | 2020.08.03 |