728x90
반응형
리스트의 각 원소들에 전부 2배씩 해주는 코드를 생각해보자.
기존 리스트에 있던 원소들을 모두 2배 해주면서 동시에 그걸 새로운 리스트에 append 해줄 수도 있지만
list comprehension 을 이용하면 선언과 동시에 for loop 으로 부터 나온 원소를 원하는 값으로 변경해줄 수 있다.
[(표현식) for (표현식에서 사용한 변수) in (변수 추출 조건) <조건문>]
arr = [1, 2, 3, 5]
new_arr = [elem * 2 for elem in arr]
print(new_arr)
>> [2, 4, 6, 10]
조건문을 포함하는 list comprehension
어떤 조건문을 만족하는 값만 리스트에 들어가도록 만들고 싶다면
다음과 같이 작성해주자.
[(표현식) for (표현식에서 사용한 변수) in (변수 추출 조건) <조건문>]
list_ = [i ** 2 for i in range(1, 10) if i % 2 == 1]
변수가 두 개 이상인 list comprehension
list_ = [(i + j) for i in range(3) for j in range(3)]
만약에 이렇게 변수가 두개가 된다면?
다르게 표혀나면 다음과 같다.
list_ = []
for i in range(3):
for j in range(3):
list_.append(i + j)
두 변수를 다 움직이기는 힘드니 for 문 처럼 하나의 문자부터 움직이게 함.
결과는 다음과 같겠다.
[0, 1, 2, 1, 2, 3, 2, 3, 4]
참고 : CODE TREE
728x90
반응형