Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 28015
- appium
- insert
- port forwarding
- Jupyter Notebook
- STF
- create table
- postgresql
- kitura
- SWIFT
- Jupyter
- appium server
- STF_PortForwarding
- Materials
- ssh
- openpyxl
- nohup
- mysql
- centos
- GoCD
- 실행권한
- ftp
- nGrinder
- rethinkdb
- sshpass
- nmap
- ubuntu
- perfect
- PYTHON
- postgres
Archives
- Today
- Total
don't stop believing
if condition 한 줄로 쓰기 (one-liner) 본문
Python에서 if-else 또는 if-elif-else 조건문(codition) 예전부터 한줄로 쓰고 싶었습니다.
python은 case문도 없을 뿐더러 간단한 if 조건문 때문에 여러줄로 늘어나는게 별로 보기좋아 보이지는 않았습니다. (개인의 취향)
그러다 몇 가지 방법이 있는 것을 확인했습니다.
우선 기본적인(전통적인) 방법입니다.
# traditional if-else if x > 0: value = 10 else: value = 20 # one-liner value = 10 if x > 0 else 20
위 방법은 value 변수에 값을 할당할 때 if문을 사용하는 방법입니다.
다음은 if-elis-else의 경우 입니다.
alpha가 7보다 클때 같을때 작을때의 조건문입니다.
# traditional if-elif-else alpha = 10 if alpha > 7: beta = 999 elif alpha == 7: beta = 99 else: beta = 0 # one-liner beta = 999 if alpha > 7 else (beta == 99 if alpha == 7 else 0)
하지만 if-elif-else 조건문일 경우 if 문을 이용한 변수 값 할당을 권장하지 않습니다.
코드가 복잡해 질 수 있고 아래 처럼 alpha == 7 의 경우에는 beta 변수에 대한 True/False가 리턴되게 됩니다.
if-elif-else의 다른 방법으로는 dict를 사용하는 방법입니다.
# traditional if-elif-else alpha = 7 if alpha > 7: beta = 999 elif alpha == 7: beta = 99 else: beta = 0 # one-liner beta = {alpha > 7: 999, alpha < 7: 0}.get(True, 99)
alpha의 값이 크거나 작을때의 조건을 ditionary의 key 값으로 넣고 get으로 True일때의 값이 가져오게 합니다.
만약 key에 True에 해당하는 조건이 없다면 .get(True, 99)로 99가 오게 됩니다.
[참고]
https://medium.com/@epicshane/one-liner-for-python-if-elif-else-statements-d9d46016ba2a
'Python > Basic' 카테고리의 다른 글
blockchain 테스트에 사용한 python 함수 - getLogfileNameWithPath (0) | 2018.12.17 |
---|---|
blockchain 테스트에 사용한 python 함수 - getDateStrings (0) | 2018.12.17 |
f-string 문자열에 변수 넣기 (3.6) (0) | 2018.10.20 |
Python 3.x 설치 (on CentOS7) (3) | 2018.10.15 |
파일 읽어서 다시 쓰기 (0) | 2018.03.05 |
Comments