본문 바로가기

Python

[Python] Asterisk

본 글은 BoostCourse에서 '머신러닝을 위한 파이썬' 강의를 듣고 작성한 글입니다.

 

Asterisk(*)는 가변인자로 한번에 여러개의 변수를 넘겨줄 때 유용하다.

예시

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'>

 

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'>

 

unpacking

(2, 3, 4, 5, 6)이 하나의 tuple이므로 args[0]이라고 적어야 한다.

print(a, args)라고 적으면 1 ((2, 3, 4, 5, 6), )의 결과가 나온다.

def asterisk_test(a, *args):
    print(a, args[0])
    print(type(args))

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

#1 (2, 3, 4, 5, 6)
#<class 'tuple'>

 

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

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

 

def asterisk_test(a, b, c, d):
    print(a, b, c, d)

data = {"b": 1, "c": 2, "d": 3}
asterisk_test(10, **data)

#10 1 2 3

 

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

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