패킹(packing): 하나의 변수에 여러가지의 값을 포장하는 것
언패킹(unpacking): 여러 가지의 값을 가진 하나의 변수를 여러 변수로 나누는 것
(1) 리스트와 튜플의 패킹과 언패킹
원소 개수와 변수 개수가 일치하지 않으면 오류가 발생한다.
순서 언팩킹(sequence unpacking) :리스트와 튜플의 원소가 여러 변수에 할당할 수 있다.
list1=[1,2,3,'apple','banana']
tuple1=(10, 20, 30, 'camera')
a,b,c,d,e= list1
f,g,h,i=tuple1
print("An element of vairable b in list 1 is ",d)
print("An element of variable e in tuple 1 is ",h)
An element of vairable b in list 1 is apple
An element of variable e in tuple 1 is 30
(2) 밑줄 언팩킹
관례상 불필요한 값은 밑줄 _로 지정될 수 있다.
_라는 이름의 변수에 할당된다.
e,f,g,_=tuple1
print("'-' is ",_)
'-' is camera
(3) 별표 언팩킹
- 변수 개수가 요소 개수보다 작은 경우 변수 이름에 별표 *를 추가하면 요소가 목록으로 함께 할당된다.
- 하나의 변수에만 *를 추가할 수 있다.
- *가 있는 변수에 요소가 하나만 할당되어 있더라도 리스트로 할당되며 여분의 요소가 없으면 빈 리스트로 할당된다.
list1= [1, 2, 3, 'apple', 'banana']
tuple1 = (10 , 20, 30, 'camera')
a, b, *c=list1
print(c)
[3, 'apple', 'banana']
a,b, *c=tuple1
print(c)
[30, 'camera']
(4) 밑줄과 별표 언팩킹
- *_은 리스트 혹은 튜플에서 변수명이 있는 위치에 하나씩 성분이 할당하고 불필요한 성분은 밑줄 _에 배정된다.
list1 = [1,2,3, 'apple', 'banana']
tuple1= (10,20,30,'camera')
a, *_, b=list1
print("'_' is ",_)
'_' is [2, 3, 'apple']
a, *_, b =tuple1
print("'_' is ",_)
'_' is [20, 30]
(5) 딕셔너리 언팩킹
def divide(a=0, b=0):
return a/b
dict1 ={'a':5,'b':8}
divide(**dict1)
0.625
'Study > Python' 카테고리의 다른 글
프로그램 흐름제어 (3) | 2024.03.27 |
---|---|
컴프리헨션과 range() (0) | 2024.03.25 |
문자열 (1) | 2024.03.18 |
math 패키지 및 통계 (0) | 2024.03.12 |
연산자 (0) | 2024.03.11 |