아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다.
'부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다.
댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다.
감사합니다.
요즘 PyTorch를 공부하면서 device ‘CUDA’ 설정 때문에 삼항연산자를 자주 사용하게 된다.
다시 파이썬 공부를 시작하면서 좀 더 파이써닉한 코드를 짜려고 노력한 덕분인지 이제는 어느정도 List Comprehension 과 삼항연산자 사용이 자연스러워 진 것 같기도 하다.
1. 삼항 연산자(Ternary operators)
삼항 연산자는 if ~ else로 이어지는 조건문 연산을 조금 더 간결하게 표현하기 위한 코드 형태이다.
대부분의 언어에서 삼항연산자를 사용할 수 있다. 파이썬도 삼항연산자를 지원하지만 형태가 조금 다르다.
[True Value] if [Condition] else [False Value]
참인 경우의 값을 적고 참인 조건을 적으며 그렇지 않을 경우(거짓인 경우)의 값을 입력하는 형태이다.
2. 삼항 연산자 사용하기
- 홀수인지 짝수인지 판별해보기
a = 5
# 일반적인 조건문
if a % 2 == 0:
print("EVEN")
else:
print("ODD")
# 삼항 연산자
print("EVEN" if a % 2 == 0 else "ODD")
>>> ODD
>>> ODD
위와 예제와 같이 4줄로 판별하는 조건문을 삼항연산자를 사용하면 한 줄로 줄일 수 있다.
3. List Comprehension에서 삼항 연산자 사용하기
삼항 연산자는 List Comprehension 내에서도 사용이 가능하다.
먼저 List Comprehension에서 조건문을 사용하는 두 가지 방법이 있다.
- 짝수만 모으는 List Comprehension
[i for i in range(10) if i % 2 == 0]
>>> [0, 2, 4, 6, 8]
- 짝수는 그대로, 홀수는 0인 값을 만드는 List Comprehension
[i if i % 2 == 0 else 0 for i in range(10)]
>>> [0, 0, 2, 0, 4, 0, 6, 0, 8, 0]
if만 쓰는 방법과 if ~ else를 사용하는 삼항연산자 모두 사용이 가능하다.
단 두 문법의 차이점은 조건문을 for문 앞에 쓰냐 뒤에 쓰냐의 차이인데,
if 만 쓰는 경우는 for 문 뒤에 써야하고, if ~ else를 사용하는 경우는 for문 앞에서 사용해야 한다.
반대의 경우는 ‘SyntaxError’ 가 발생한다.
![](https://blog.kakaocdn.net/dn/T9ekH/btrW9pvGDgJ/srQsnjgKUY5bcWfk313Ht1/img.png)
...끝
'Programming Language > Python' 카테고리의 다른 글
[Python] List : Pop, Del, Remove, Slicing 속도 비교 (0) | 2023.01.19 |
---|---|
[Python] 자료구조 : Hash (0) | 2022.12.27 |
[Python] map, zip, filter, enumerate 정리 (0) | 2022.12.09 |
[Web Crawling] Requests 와 URLLIB (0) | 2022.12.09 |
[Web Crawling] 웹 크롤링 개요 (0) | 2022.12.09 |
댓글