Asterisk(*)

  • 단순 곱셈, 제곱 연산, 가변 인자(여러 개 값들을 한 번에 받을 수 있음)등 다양하게 사용됨
  • tuple, dict 등의 자료형에 들어가 있는 값을 unpacking 하기 편리함
  • 함수의 입력값, zip 등에 유용하게 사용가능

 

Ex 1) 가변 인자 사용 예

  • a = 1, *args = (2, 3, 4, 5, 6)
  • 가변 인자는 Tuple 형태
def asterisk_test(a, *args):
    print(a, args)
    print(type(args))
    
asterisk_test(1, 2, 3, 4, 5, 6)

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

<class 'tuple'>

 

 

Ex 2) 키워드 인자 사용 예

  • a = 1, **kargs = {'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
  • 키워드 인자는 Dict 형태
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 {'b':2, 'c':3, 'd':4, 'e':5, 'f':6}

<class 'dict'>

 

 

Ex 3) unpacking 예 

  • 함수 선언의 args는 하나의 tuple을 받음
  • 이것을 *args를 하여 unpacking 
def asterisk_test(a, args):
    print(a, *args)
    print(type(args))
    
asterisk_test(1, (2,3,4,5,6))

1 2 3 4 5 6     (unpacking 된 결과)

<class 'tuple'>

 

 

Ex 3-1) unpacking 예 2

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

data = ([1, 2], [3, 4], [5, 6])
print(*data)

[1, 2], [3, 4], [5, 6]

[1, 2], [3, 4], [5, 6]

 

 

Ex 3-2) unpacking 예 3

def asterisk_test(a, b, c, d, e):
    print(a, b, c, d, e)
    
data = {"d":1, "c":2, "b":3, "e":56}
asterisk_test(10, **data)

10 3 2 1 56

 

 

Ex 3-3) unpacking 예 4

for data in zip(*([1, 2], [3, 4], [5, 6])):
    print(sum(data))

9    (1 + 3+ 5)

12    (2+ 4 + 6)

 

'✍🏻Language & FrameWork > Python' 카테고리의 다른 글

[Python for ML] News Categorization  (0) 2024.01.02
[Python for ML] Linear Algebra Codes - 1  (2) 2024.01.02
[Python for ML] Reduce 함수  (0) 2024.01.01
[Python for ML] Map 함수  (0) 2024.01.01
[Python for ML] Lambda 함수  (0) 2024.01.01