반응형

파이썬 기본 문법 - 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)

반응형

+ Recent posts