이런 문법 처음 보는 분 보세요
*a,=map(int,input.split())
Starred Expression(Star Unpacking)
a=[1,2,3]
b=[4,*a,5] # b=[4,1,2,3,5]
- 단독으로는 사용될 수 없다.
- 컨텍스트 안에서 써야 한다. (함수 호출, 리스트 생성 등)
- 동일한 변수 내에서 여러번 쓸 수 없다.
함수 인자의 언패킹
def func(a,b,c):
return a+b+c
values = [1,2,3]
result = func(*values)
- list(*map) , print(*str) 도 이렇게 인자를 언패킹해 넘겨주는 것이였다.
Extended Unpacking(리스트나 튜플 , 맵 등)
- 언패킹시 일부 원소들은 별도로 할당하고, 나머지는 다른 변수에 할당
first, *rest = [1,2,3,4] # first 1 , rest[2,3,4]
*a, = map(int,[])
a = [*map(int,[])] #위와 같음
참고할만한 활용
a=[1,2]
b=[3,4,5]
merged = [*a,*b] #1.star expression
merged = a+b # 2.고전적인 방법
- 1 방법을 쓰면 성능 측면에서 새로운 메모리를 만든 다음 할당하지 않으므로 약간 더 효율적