1. 패킹과 언패킹이란?
여러 데이터를 하나의 변수에 묶거나, 하나의 변수에 묶인 데이터를 여러 변수에 분배하는 과정을 의
튜플 또는 리스트와 같은 데이터 타입을 사용할 때 유용하다.
2. 패킹 (Packing)
패킹은 여러 데이터를 하나의 변수에 묶는 것이다.
my_tuple = 1, 2, 3 # 튜플로 패킹
my_list = [1, 2, 3] # 리스트로 패킹
3. 언패킹 (Unpacking)
언패킹은 튜플, 리스트에 있는 요소들을 여러 개의 변수로 분배하는 과정이다.
각 요소가 순서대로 각 변수에 할당된다.
변수의 수와 요소의 수가 일치해야 한다.
a, b, c = my_tuple # 튜플에서 언패킹
x, y, z = my_list # 리스트에서 언패킹
3.1 확장된 언패킹
일부 요소만 변수에 할당하고 나머지 모든 요소들은 다른 변수에 리스트 형태로 할당할 수 있다.
이때 * 연산자를 사용한다.
first, *rest = [1, 2, 3, 4, 5] # first = 1, rest = [2, 3, 4, 5]
*head, last = [1, 2, 3, 4, 5] # head = [1, 2, 3, 4], last = 5
first, *middle, last = (1, 2, 3, 4, 5) # first = 1, last = 5, middle = [2, 3, 4]
4. 함수의 인자와 패킹/언패킹
4.1 함수 인자 언패킹
함수 호출 시 *를 사용하여 리스트나 튜플의 요소를 함수 인자로 넘길 수 있다.
def my_func(a, b, c):
print(a, b, c) # 1 2 3
args = [1, 2, 3]
my_func(*args)
-------------------------------------------------------------------------
def my_func(a, b, c):
print(a, b, c) # a b c
args = {'a': 1, 'b': 2, 'c': 3}
my_func(*args)
4.2 키워드 인자 언패킹
**를 사용하여 사전의 키와 값을 함수의 키워드 인자로 넘길 수 있다.
언패킹을할 때는 딕셔너리 키가 문자열이어야 하고, 함수의 인자 이름과 일치해야 한다.
def my_func(a, b, c):
print(a, b, c) # 1 2 3
kwargs = {'a': 1, 'b': 2, 'c': 3}
my_func(**kwargs)
def my_func(*args, **kwargs):
print(args) # 위치 인자들 ('a', 'b', 'c')
print(kwargs) # 키워드 인자들 {'a': 1, 'b': 2, 'c': 3}
kwargs = {'a': 1, 'b': 2, 'c': 3}
my_func(*kwargs, **kwargs)
'Language > Python' 카테고리의 다른 글
[Python] 파일 입출력 (0) | 2024.04.27 |
---|---|
[Python] 함수 (0) | 2024.04.24 |
[Python] 집합 (0) | 2024.04.24 |
[Python] 딕셔너리 (0) | 2024.04.24 |
[Python] 튜플 (0) | 2024.04.23 |