반응형
리스트 컴프리헨션 이란?
리스트내에서 어떤 조건에 해당하는 것을 뽑아내거나 새로운 리스트를 만들어 낼때 사용하는 것. 좀 더 쉽게 이해하기 위해 for + if 문을 조합한 것이라고 생각하면 쉽습니다.
리스트컴프리헨션 사용 문법
new_list = [변수 활용 for 변수 in 반복대상 if 조건]
리스트컴프리헨션 예시
my_list = [1,2,3,4,5]
new_list = [x for x in my_list if x > 3]
- 맨앞에 x 는 변수 활용 임
- x -> [1,2,3,4,5]
- x+1 -> [2,3,4,5,6]
- x*3 -> [3,6,9,12,15]
- str(x) + '번' -> [1번,2번,3번,4번,5번]
리스트컴프리헨션 예시 해석
- (1) my_list에서
- (2) 3보다 큰 값들만
- (3) 그대로사용해서
- (4) 새로운 리스트로 만들어줘
리스트 컴프리헨션을 사용하지 않은 경우
for , if 문으로 문장이 길어짐
products = ['A-1010','B-2020','C-3030']
recall = []
for p in produects:
if p.startswith('C'):
recall.append(p)
print(recall)
> ['C-3030']
리스트 컴프리헨션을 사용할 경우
한 줄로 간소화가 가능함
products = ['A-1010','B-2020','C-3030']
recall = [p for p in produects if p.startswith('C)]
print(recall)
> ['C-3030']
리스트 컴프리헨션 활용 예제
- 모든 모델명 뒤에 SE(special edition)를 붙이기
products = ['A-1010','B-2020','C-3030']
prod_se = [p + 'SE' for p in products]
- 모든 모델명을 소문자로 바꾸기
products = ['A-1010','B-2020','C-3030']
prod_lower = [p.lower() for p in products]
- 특정 문자열 조건을 맞는것을 가져와서 NEW라는 글자를 넣어줘
products = ['A-1010','B-2020','C-3030']
prod_new = [p+'NEW' for p in products if p.endswith('3030)]
반응형
'IT > Python' 카테고리의 다른 글
[Python] 특정 지역의 date(날짜) 가져오기 (0) | 2022.06.26 |
---|---|
[Python] Reqeust 모듈 사용 법 (1) | 2022.03.10 |
Python List의 Dictionary 데이터 쉽게 가져오기(Generator Expressions) (0) | 2021.10.14 |
python boto3 라이브러리 2.7 버전 미지원 대응 방법 (0) | 2021.10.07 |
[Python] list 자료형 사용법 (0) | 2019.11.05 |