build my life

[Python] 파이써닉코드(Pythonic code) : 삼항연산자, Comprehension, enumerate & zip 본문

Python

[Python] 파이써닉코드(Pythonic code) : 삼항연산자, Comprehension, enumerate & zip

dalovee 2022. 8. 4. 17:08
728x90

사람의 시간이 중요하다

 

코드를 실행하는 시간도 단축시키는 것이 물론 중요하지만 그 코드를 작성하는 사람의 시간도 매우 중요하다는 강사님의 말씀:)

즉, 더 빠르고 효율적인 코드 작성법에 대해 배웠다.

 

파이써닉(pythonic)한 코드

  • 간결하고 가독성 있게 코딩하자

 

삼항 연산자

  • 파이썬이 아닌 다른 언어들은 삼항연산자(?)가 존재하지만.. 파이썬은 없음!
  • if, else를 사용하여 삼항연산을 수행
<True 일때 사용할 값> if <condition> else <False 일때 사용할 값>

예시)

age = 19
msg = "회원가입 가능" if age >=20 else "회원가입 불가능"

 

컴프리헨션(Comprehension)

  • 반복 가능한 객체를 활용해서 새로운 반복가능한 객체를 만들 수 있다.
  • list, set, dict 자료형을 간단하게 만드는 문법
  • tuple은 컴프리헨션 지원 불가

 

1) list comprehension

  • [] 사용해서 작성
  • 한줄로 작성해서 간단하고 가독성이 높다
  • 속도가 빠르다!!!! (참고 : 파이썬에서 시간을 확인하고 싶을땐 "%%timeit" 써서 확인
  • [<추가할 값> for <변수> in <컬렉션> if <값에 대한 조건>]

 

2) set comprehension

  • {} 사용해서 작성
  • 중복값을 제거가 필요한 경우 사용
  • 많이 사용하지는 않음!
a = {data for data in range(1,6)}

 

3) dict comprehension

  • {} 사용해서 작성
  • 추가할 값 자리에 : 사용해서 dict 형태로 작성

예시)

a = ["아침", "점심", "저녁"]
b = ["샌드위치", "유부초밥", "피자"]

result = {meal:food for meal, food in zip(a,b)}

 


대학생 때 파이썬을 공부했지만 파이써닉한 코드를 배운건 처음이었다.

확실히 시간도 단축되고 긴 코드를 한줄로 작성할 수 있다는 점이 코드 작성하면서 가장 크게 느낀 장점이었다!

속도 확인해보니까 진짜 다르긴 달라서 놀램,,, 오,,,

 

728x90

'Python' 카테고리의 다른 글

[Python] 람다 함수(lambda)  (0) 2022.08.08
[Python] 함수  (0) 2022.08.08
[Python] 제어문 - 반복문(while문, for문)  (0) 2022.08.04
[Python] 제어문 - 조건문(if)  (0) 2022.08.04
[Python] 문자열과 관련 메소드  (0) 2022.08.04