반응형
리스트 컴프리헨션은 기존 리스트를 기반으로 새로운 리스트를 만들어내는 구문이다.
기본 구문: [ <표현식> for <변수명> in <시퀀스> if <조건> ]
(for, in ,if...뽀린잎으로 외워)
+) if else가 섞인 리스트 컴프리헨션의 순서는 [(표현식) if <조건> else <표현식> for <변수명> in <시퀀스>]이다
사용 예제: 홀수인 경우 제곱하여 출력하는 리스트 컴프리헨션
>> [n*n for n in range(0,10) if n%2 ==1 ]
[1,9,25,49,81]
활용1. 새 리스트 생성
# example1
>> a = [1,2,3]
>> b = [2*x for x in a]
>> b
[2,4,6]
# example2
>> a = ['abc','def']
>> b = [name.upper() for name in a]
>> b
['ABC', 'DEF']
활용2. 필터링
>>a=[1,-5,4,2,-2,10]
>>b=[2*x for x in a if x>0]
>>b
[2,8,4,20]
# db에 활용
a=[s for s in stocks if s['price']>100]
a=[s['name'] for s in stocks]
* 동일한 구문으로 딕셔너리도 만들어 낼 수 있다.
a ={}
for key, val in original.itmes():
a[key]= val
## 위 코드를 다음과 같이 한줄로
a = {key:value for key,value in original.items()}
## 리스트 -> 딕셔너리
a= [['lukas',25],['jenni',26],['tom',24]]
b={ key, value for key, value in a}
b
{'lukas':25, 'jenni':26, 'tom':24}
댓글