반응형
백준 1629번 문제를 풀고 다른 사람의 답을 보았는데 신기한 답이 있었다.
단 한 줄로 문제를 해결하였다.
print(pow(*map(int,input().split())))
이것을 보고 * 에 대해 알아보기로 하였다.
기존에는 * 기호를 곱셈, 거듭제곱, 리스트 확장에만 사용하였다.
1. * 은 가변인자를 사용할 때 쓰일 수 있다.
- *args, **kwargs
args와 kwargs는 각각 다음과 같이 쓰인다.
def args(*args):
print(args)
def kwargs(**kwargs):
print(kwargs)
args(1,2,3,4) # (1,2,3,4)
kwargs(a=1,b=2) # {'a'=1,'b'=1}
위의 예제의 출력결과를 보면 args는 tuple, kwargs는 dict에 저장되어 출력되는 것을 볼 수 있다.
2. Unpacking
위와는 반대로 리스트나 튜플을 순회할 수 있다.
다음의 예시를 살펴보자
array = [1,2,3,4]
print(*array) # 1 2 3 4
tuple = (1,2,3,4)
print(*tuple) # 1 2 3 4
*a,b = array
print(a,b) # [1, 2, 3] 4
a,*b = array
print(a,b) # 1, [2, 3, 4]
a,*b, c = array
print(a,b,c) # 1, [2, 3] 4
* 을 사용하여 변수에 가변적으로 할당하는 것도 가능하다.
반응형
'알고리즘' 카테고리의 다른 글
[파이썬] strip( ), lstrip( ), rstrip( ) (0) | 2021.11.14 |
---|---|
진수 변환(2진수 ,3진수 ... n진수) (0) | 2021.11.06 |
[파이썬] bisect 라이브러리 (0) | 2021.09.26 |
[파이썬] heapq 라이브러리 (0) | 2021.09.26 |
[파이썬] itertools 라이브러리 (0) | 2021.09.26 |
댓글