728x90
Asterisk(*)의 곱하기 기능 외 기능을 공부하게 되어 기록하려고 한다.
곱하기
(*)는 곱하기 기능을 하는 것으로 잘 알려져 있다.
숫자 자료형의 곱셈 혹은 거듭제곱뿐만 아니라 리스트를 초기화하는 데에도 사용된다.
arr=[0]*10
가변 인자
Asterisk(*)는 함수에서 가변 인자를 받을 때도 유용하게 사용된다.
받을 수 있는 가변 인자는 positional args, keyword args가 있다.
positional args
인자를 positional args로 전달할 경우,
값들만을 가지는 튜플 형태로 인자들을 사용할 수 있다.
def add(*args):
print(args)
add(1,2,3,4,5)
#(1, 2, 3, 4, 5)
일반적으로 함수에 대한 입력값이 일정하지 않을 때 유용하게 쓰인다.
keyword args
인자를 keyword args로 전달할 경우,
key를 가진 dictionary 형태로 인자들을 사용할 수 있다.
def add(**kwargs):
print(kwargs)
add(first=1,second=2,third=3)
#{'first': 1, 'second': 2, 'third': 3}
함께 사용하는 경우
만약 인자를 positional args로 받는다고 했는데 key가 있는 인자를 받거나
그 반대의 경우인 keyword args로 받는다고 했는데 값만 있는 인자를 받는다면 오류가 발생한다.
두 형태의 인자를 모두 받아야 하는 경우라면, 이를 알려줘야 한다.
def add(*args,**kwargs):
print(args,kwargs)
add(2,4,first=1,third=3)
#(2, 4) {'first': 1, 'third': 3}
keyword args는 positional args보다 앞에 선언할 수 없으며,
인자를 전달할 때에도 순서에 맞게 전달해야 한다.
def add(**kwargs,*args) #(X)
def add(*args,**kwargs) #(O)
add(first=1,2,third=3,4) #(X)
add(2,4,first=1,third=3) #(O)
컨테이너 타입 데이터를 Unpacking 할 때
이번에 새로 알게 된 기능이다.
tuple, dictionary, list 등의 컨테이너 타입 데이터를 unpacking 하는 기능이다.
바로 코드를 보자.
dict={'a':1,'b':2}
print(*dict)
#a b
list=[1,2]
print(*list)
#1 2
tup=(1,2)
print(*tup)
#1 2
위와 같이 원소들을 반환해주는 것이 unpacking 기능이다.
map 객체 등에도 사용할 수 있어 유용하게 사용할 것 같다.
print(*map(int,input().split()))
"""
input : 1 2 3 4
output : 1 2 3 4
"""
참고
아래의 링크에서 자세하게 다뤄주셨다.
마치며
잘못된 정보에 대한 피드백은 환영입니다.
감사합니다.
728x90
'Python' 카테고리의 다른 글
[Python] Python iter, enumerate 함수 (0) | 2022.12.10 |
---|---|
[Python] 파이썬 주요 라이브러리(math,iter,heapq,bisect,collections) (0) | 2022.12.03 |
[Python] 파이썬 기본 개념(자료형, 함수, 입출력) (0) | 2022.12.03 |
[Python] Python format 사용법 (0) | 2022.07.12 |