[Python]-패킹과 언패킹

hannah·2024년 1월 17일
0

Python

목록 보기
7/10

Packing

  • 여러 개의 값을 하나의 변수에 묶어서 담는 것
  • 변수에 담긴 값들을 튜플(tuple) 형태로 묶임
packed_values=1,2,3,4,5
print(packed_values)    #(1,2,3,4,5)
  1. * 을 활용한 패킹

    # *b는 남은 요소들을 리스트로 패킹하여 할당
    numbers=[1,2,3,4,5]
    a,*b,c=numbers
    
    print(a) # 1
    print(b) # [2,3,4]
    print(c) # 5
  • print 함수에서 임의의 가변 인자를 작성할 수 있었던 이유 ⇒ 인자 개수에 상관 없이 튜플 하나로 패킹 되어서 내부에서 처리
    def my_func(*objects):
    	print(objects) # (1,2,3,4,5)
    	print(type(objects)) # <class tuple'>
    
    my_func(1,2,3,4,5)
    
    # (1,2,3,4,5)
    # <class 'tuple'>

Unpacking

  • 패킹된 변수의 값을 개별적인 변수로 분리하여 할당하는 것
  • 튜플이나 리스트 등의 객체의 요소들을 개별 변수에 할당
packed_values=1,2,3,4,5
a,b,c,d,e=packed_values
print(a,b,c,d,e) # 1,2,3,4,5
  1. * 을 활용한 언패킹

    # *는 리스트의 요소를 언패킹
    names=['gaga','nana','didi']
    print(*names) # gaga nana didi
  1. ** 을 활용한 언패킹

    # **는 딕셔너리의 키-값 쌍을 함수의 키워드 인자로 언패킹
    def mu_finction(x,y,z):
    	print(x,y,z)
    
    my_dict={'x':1,'y':2,'z':3}
    my_function(**my_dict) # 1 2 3
    • *
      • 패킹 연산자로 사용될 때, 여러 개의 인자를 하나의 튜플로 묶는 역할
      • 언패킹 연산자로 사용될 때, 시퀀스나 반복 가능한 객체를 각각의 요소로 언패킹하여 함수의 인자로 전달
    • **
      • 언패킹 연산자로 사용될 때, 딕셔너리의 키-값 쌍을 키워드 인자로 언패킹하여 함수의 인자로 전달하는 역할

0개의 댓글