728x90
컴프리헨션은 파이썬만의 특수한 문법입니다. 컴프리헨션을 사용하면 리스트, 세트, 딕셔너리 등의 컬렉션 데이터 타입을 간결하게 생성하거나 변환할 수 있습니다. 컴프리헨션을 사용하면 작성하는 코드의 양을 줄일 수 있습니다.
1. 리스트 컴프리헨션
리스트 컴프리헨션을 사용하면 for문을 좀 더 간결하게 표현할 수 있습니다.
또한 일반 for문보다 미세하게 빠르다고 합니다.
일반적으로 아래와 같이 사용합니다.
[변환할 값 for 변수 in 리스트 if 조건문]
만약에 if else가 포함된다면 아래와 같이 사용합니다.
[변환할 값 if 조건문 else 조건이 성립하지않을때 변환할 값 for 변수 in 리스트]
아래는 예제입니다.
students = [1,2,3,4,5]
print(students) #출력 [1,2,3,4,5]
students = [i+100 for i in students]
print(students) #출력 [101,102,103,104,105]
students = ["codezero","jisu","mi na"]
print(students) #출력:['codezero','jisu','mi na']
students = [i.upper() for i in students]
print(students) #출력:['CODEZERO','JISU','MI NA']
students = [len(i) for i in students]
print(students) #출력:[8,4,5]
numbers = [5,10,20,30,50,80,100,200,150,300]
print([f"{i}=100 over" for i in numbers if i>100]) #출력:['200=100 over', '150=100 over', '300=100 over']
print([f"{i}=2자리" for i in numbers if i<100 if i>9]) #출력: ['10=2자리', '20=2자리', '30=2자리', '50=2자리', '80=2자리']
print([i+100 if i>=100 else i*10 for i in numbers]) #출력: [50, 100, 200, 300, 500, 800, 200, 300, 250, 400]
2. 세트 컴프리헨션 & 딕셔너리 컴프리헨션
세트 컴프리헨션과 딕셔너리 컴프리헨션을 사용하는 방법은 유사합니다. 딕셔너리 컴프리헨션을 사용할때는 key와 value형식으로 만들어야됩니다.
즉 사용방법은 아래와 같습니다.
1] 세트 컴프리헨션
{변환할 값 for 변수 in 반복가능한객체 if 조건문}
예제)
set_comprehension = {x**2 for x in [1,2,3,4,5,6]}
print(type(set_comprehension),set_comprehension) #출력: <class 'set'> {1, 4, 36, 9, 16, 25}
2] 딕셔너리 컴프리헨션
{key : 변환할 값 for 변수 in 반복가능한 객체 if 조건문}
예제)
dict_comprehension = {x-1 : x**2 for x in [1,2,3,4,5,6]}
print(type(dict_comprehension),dict_comprehension) #출력: <class 'dict'> {0: 1, 1: 4, 2: 9, 3: 16, 4: 25, 5: 36}
tuple_a = (('k1','val1'),
('k2','val2'),
('k3','val3'))
dict_comprehension2 = {k:v for k,v in tuple_a}
print(dict_comprehension2) #출력: {'k1': 'val1', 'k2': 'val2', 'k3': 'val3'}
'PYTHON Programming > Python' 카테고리의 다른 글
[python] 입출력 (0) | 2024.04.23 |
---|---|
[python] 함수 (0) | 2024.04.23 |
[python] 반복문 (0) | 2024.04.23 |
[python] 제어문 (0) | 2024.04.22 |
[python] 변수 및 연산자 (0) | 2024.04.22 |