List Comprehensions
Python의 List Comprehensions 이해하기
개요 및 기본 구조¶
list comprehension을 사용하면 리스트를 간단하게 만들 수 있으며, 리스트를 만드는 속도가 for loop에 비해 빠르다.1 다만 list를 만드는 것이 아니라 연산을 해야할 때는 당연히 for loop이 더 빠르다.
list comprehension의 기본 구조는 아래와 같고, 추가 연산을 부여해줄 수도 있다.
선형대수를 공부하면서 list comprehension을 많이 사용했는데, 자세한 내용은 여기, 여기, 여기를 참고하자.
for + if¶
list comprehension에 if
조건문을 부여하는 방법은 아래와 같다.
if + else + for¶
list comprehension에 if else
조건문을 부여하는 방법은 아래와 같다.
if + elif + else + for¶
list comprehension에서는 elif
를 사용할 수 없고, 아래와 같이 else
와 if
를 조합해서 사용해야 한다.
for + for¶
list comprehension안에 이중 for
문을 넣는 방법은 아래와 같다. 하위의 for
문이 뒤로 가는 것을 확인할 수 있다.
Nested List Comprehensions¶
list comprehension안에 list comprehension을 넣는 방법은 아래와 같다. 상위의 list comprehension이 뒤로 가는 것을 확인할 수 있다. 다차원 배열을 만들 때 많이 사용된다.
다른 자료형의 Comprehension¶
list
뿐만 아니라 다른 자료형에도 사용 가능하다.
tmp = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
res = {k: v * 2 for (k, v) in tmp.items()}
print(res)