[Python] 언패킹(Unpacking) 연산자

yunh·2022년 1월 25일
0

Python 📖

목록 보기
12/34
post-thumbnail

변수 선언할 때

*x = 1, 2, 3, 4 => x에 [1,2,3,4] 리스트 형태로 들어간다.

x, *y = 1, 2, 3, 4 => x에는 1, y에는 [2, 3, 4]가 들어간다.



함수에서 가변인자로 사용할 때

def func(*args):

  • 함수에 func(*list), func(*tuple)로 딕셔너리가 아닌 iterable 객체를 언패킹 연산자를 사용해서 담으면 tuple로 들어간다.
  • 함수에 func(1,2,3) 담으면 args = (1,2,3) tuple 형식으로 들어간다.
def func(*args):
    print(args)

lst = [1, 2, 3]
tupl = (1, 2, 3)

func(*lst)
''' 
(1, 2, 3)
'''
func(*tupl)
''' 
(1, 2, 3)
'''
func(1, 2, 3)
''' 
(1, 2, 3)
'''

def func(**kwargs):

  • 함수에 func(**딕셔너리) 형태로 담으면 kwargs가 딕셔너리 형식으로 들어간다.

  • func(key1 = 'value1', key2 = 'value2') 형태로 담으면 딕셔너리 형태로 담기는데 key는 식별자 이름이니까 ' '를 안해줘도 된다. 그 대신 key는 무조건 문자열 형태로만 담기게 된다.

    정수로 적으면 에러가 발생!

def func(**kwargs):
    for key in kwargs:
        print(key,kwargs[key])

dic = {'1' : '윤혁', '2' : '태이', '3' : '서희'}

func(**dic)
''' 딕셔너리를 ** 언패킹 연산자 2개를 사용해서 담을 수 있다.
1 윤혁
2 태이
3 서희
'''

func(a = '윤혁', b  = '강현', c = '두산')
''' a, b, c는 key로 사용되는데 ''를 안씌워줘야 한다. 정수형태는 불가능!
a 윤혁
b 강현
c 두산
'''


프린트할 때

print([1,2,3]) # => [1, 2, 3] 이런 식으로 프린트되는 걸 괄호를 지우고 싶을 때

언패킹 연산자를 활용한다.

print(*[1,2,3]) # => 1 2 3 list를 지우고 출력한다.

profile
passionate developer

0개의 댓글