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 |