본문 바로가기

Python/부스트코스_노트

Pythonic Code - Asterisk

네이버 부스트코스 강좌 정리입니다.

 

  • Asterisk
# 함수의 인자수가 정해져있지 않은 경우
def asterisk_test(a, *args):
    print(a, args)
    print(type(args))

asterisk_test(1,2,3,4,5,6)
# 1을 제외한 나머지는 tuple로 묶임


#################################################################################

# 키워드 인자로 받을 경우
def asterisk_test(a, **kargs):
    print(a, kargs)
    print(type(kargs))

asterisk_test(1, b=2, c=3, d=4, e=5, f=6)
# 1을 제외한 나머지는 dict로 묶임

#################################################################################

 

  • unpacking container로써의 *
def asterisk_test(a, args): # 인자를 받고
    print(a, *args) # *를 붙여 unpacking # tuple내의 원소가 언패킹됨
    print(type(args))

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

########################################################################################

a, b, c = ([1, 2], [3, 4], [5, 6])
print(a, b, c)

data = ([1, 2], [3, 4], [5, 6])
print(*data)
# 같은 결과

########################################################################################

for data in zip(*([1, 2], [3, 4], [5, 6])): # tuple 언패킹되어 3개의 리스트 zip연산
    print(sum(data))

########################################################################################

def asterisk_test(a, b, c, d, e=0): # 5개의 인자를 받음
    print(a, b, c, d, e)
    
data = {"d":1 , "c":2, "b":3, "e"=56} 
asterisk_test(10, **data) # dict를 언패킹하여 함수 인자의 key에 맞추어 지정됨
# 결과 - 10 3 2 1 56
# e의 경우 0이 아닌 56으로 

 

'Python > 부스트코스_노트' 카테고리의 다른 글

Pythonic Code - news categorization  (0) 2020.02.24
Pythonic Code - map & reduce  (0) 2020.02.22
Pythonic Code - enumerate & zip  (0) 2020.02.22