# Tech/Python

[파이썬] 패킹(packing), 언패킹(unpacking)

illiilli7 2022. 4. 23. 15:01
             
   

파이썬에서의 패킹과 언패킹의 의미 및 사용에 대해서 정리해보았습니다.

 

* 출처: PrepInsta

 

1. 패킹(packing)

 

📝 패킹(packing) 이란?

한 변수에 여러 개의 데이터를 할당하여, 여러개의 객체를 하나의 객체로 합쳐주는 것 → 묶는다!

 

✔️ 리스트에서의 패킹

# 1, 2, 3 을 변수 list_p에 패킹
list_p = [1, 2, 3]

 

✔️ 튜플에서의 패킹

# 학생 이름과 학번으로 묶기
student = ('홍길동', 20220423)
print(student) # result : ('홍길동', 20220423)

# 튜플 패킹 시 소괄호 없어도 됨
student = '홍길동', 20220423
print(student) # result: ('홍길동', 20220423)

 

✔️ 함수에서의 패킹

def return_tuple():
  return 10, 20, 30

pack = return_tuple()
print(pack)

# result : (10, 20, 30)

 

 

2. 언패킹(unpacking)

 

📝 언패킹(unpacking) 이란?

패킹과 반대되는 개념으로, 한 변수의 데이터를 각각의 변수로 반환하는 것 → 묶인 걸 푼다!

 

✔️ 리스트에서의 언패킹

list_p = [1, 2, 3]

# 각각의 요소로 리스트 언패킹하기
a , b, c = list_p
print(a, b, c)

# result :  1 2 3

 

✔️ 튜플에서의 언패킹

# 패킹된 개체
student = '홍길동', 20220423 

# 각각의 변수로 언패킹 하기
name, stud_num = student
print(name, stud_num)

# result : 홍길동 20220423

 

✔️ 튜플에서의 언패킹2

: * 를 사용하여 일부를 하나의 변수로 묶을 수 있다.

packs = 1, 2, 3, 4, 5, 6, 7

p1, p2, *others = packs

print("* p1: {}".format(p1))
# result : * p1: 1

print("* p2: {}".format(p2))
# result : * p2: 2

print("* others: {}".format(others))
# result : * others: [3, 4, 5, 6, 7]

 

✔️ 함수에서의 언패킹

: * 을 사용 시 언패킹하여 각각의 매개변수에 전달

 

def stock(name, price):
  print(name)
  print(price)

stock_ = '삼성전자', '8만전자 제발'

# * 을 사용 시 stock_ 값을 언패킹하여 각각의 매개변수에 전달
stock(*stock_)

# result: 삼성전자\n8만전자 제발
반응형