파이썬 List를 편하게 가지고 노는 방법 (List Comprehensions)
2019. 8. 13. 11:05ㆍProgramming Tutorial/Python
List compreshension을 이용하게되면 List를 편하고 간편하게 다룰수 있습니다.
여기서 편하고 간편하게라는 의미는 역시 적은 타이핑을 의미하겠지요.
익숙해지면 생산성이 더욱 올라갈 겁니다.
예를 몇가지 볼까요?
capitalized_coffees = []
for coffee in coffees:
capitalized_coffees.append(coffee.title())
아유... 길다 그죠? 타이핑도 많이 쳤고, For 반복문도 사용하면서 줄도 많아 졌습니다.
이제 편하고 간단하게 해봅시다.
capitalized_coffees = [coffee.title() for coffee in coffees]
위와 같이 아주 간단해졌네요.
이렇게 List Comprehension은 for 반복문을 통해서 list를 만드는 행위를 한방에 / 한줄에 처리할수 있도록 해줍니다.
간단한 한줄이다보니 가독성도 훨씬 좋으네요.
for 반복문은 위와같이 하면 되겠는데...
그럼 정말 자주쓰는 if와 함께 사용하는 예시도 봐야겠지요?
squares = [x**2 for x in range(9) if x % 2 == 0]
위에 어떤 조건을 더했나요? x mod 2가 0일때. 음 even 즉 x가 짝수 일때만 왼쪽 반복문과 함께 list를 만들어라로
되어있네요.
0, 2, 4, 8 을 제곱했으니 출력은 0, 4, 16, 64 가 되겠습니다.
쉽지요?
하지만 여기서 if 가 등장했으니 절친인 else를 같이 활용한 예시도 보고 가야겠습니다.
일단 위의 예를 반영해서 간단하게 아래와 같이 쓴다면??
squares = [x**2 for x in range(9) if x % 2 == 0 else x + 3]
Syntex Error가 발생합니다.
이럴때는 아래와 같이 해야합니다. for 앞에다가 if else set를 같이 넣어주는 거죠.
squares = [x**2 if x % 2 == 0 else x + 3 for x in range(9)]
'Programming Tutorial > Python' 카테고리의 다른 글
다른 .py파일을 import 하는 방법과 __name__의 정체 (1) | 2019.08.17 |
---|---|
Function 에 documentation 하는 방법 (0) | 2019.08.13 |
Mutable 과 Immutable 의 의미 (1) | 2019.08.12 |
[Pandas] 비지도학습을 위한 Custom Binary Encoding (0) | 2019.07.23 |
Python 쓰면서 date time 정보에 대해서 생각해본적 있나? (0) | 2019.06.27 |