kwan's note

pythonic code(파이써닉 코드) 본문

ML and AI/Python for ML

pythonic code(파이써닉 코드)

kwan's note 2021. 1. 4. 02:12
반응형

 

출처: 부스트코스-머신러닝을 위한 파이썬

수강일시:2021.01.03

 

pythonic code는 파이썬 스러운 코드라는 뜻이다.

기존 언어와 다른 파이썬의 특징(주로 장점)을 잘 이용하는 코드로

간결하고 이해하기 쉽게, 파이썬스럽게 작성된 코드를 의미한다.

 

머신러닝을 위한 파이썬 첫번째 강의는 이러한 파이써닉 코드를 위한 파이썬 복습이 주요 내용이었다.

 

1.split&join

 

url1 = "www.naver.com"
print(url1)

url2 = "www.naver.com".split(".")
print(url2)

url3=".".join(url2)
print(url3)

 

2.List Comprehension

 

result = []
for i in range(10):
	if(i%2==0):
	    result.append(i)

print(result)


#이를 pythonic하게 작성한다면 

result = [i for i in range(10) if i%2==0]
print(result)

 

3.Enumerate & Zip

 

enumerate는 index를 부여하고

zip은 같은 index의 value들을 묶어준다.

alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

for i, (a, b) in enumerate(zip(alist, blist)):
    print(i, a, b)

 

4.Lambda & MapReduce

 

#lambda는 익명 함수
f=lambda x:x**2+1
print(f(4))

#map은 sequence형 자료형의 각 element에 동일한 함수를 적용함
exdata=[1,2,3,4,5]
print(list(map(f,exdata)))
from functools import reduce
print(reduce(lambda x,y:x+y,[1,2,3,4,5,6,7,8,9,10]))

5.Asterisk

def asterisk_test(a, *args):
    print(a, args)
    print(type(args))

asterisk_test(1,2,3,4,5,6)


def asterisk_test2(a, **kargs):
    print(a, kargs)
    print(type(kargs))

asterisk_test2(1, b=2, c=3, d=4, e=5, f=6)

 

다만 짧게 작성한 코드가 다 좋은 코드는 아니다.

빠르고 효율적이면서 다른사람이 이해하기 쉽게 작성해야 한다.

반응형