- html css
- 제이 쿼리
- 국비 지원 프로그래밍
- javascript array map
- 동기 뜻
- 프로그래밍 파이썬
- 코딩 파이썬 기초
- 웹 프로그래밍 기초
- 파이썬 ide 추천
- Python3
- jupyter python
- javascript example
- 웹 프로그래밍
- javascript array remove
- $(document).ready()
- 리엑트 삼항연산자
- jquery loaded event
- 국비 지원 파이썬
- 파이썬 입문
- 프로그래밍
- 파이썬 배우기
- HTML
- 카카오 애드핏
- 비동기 코드
- python slicing
- javascript array splice
- 비동기 뜻
- 파이썬 강의
- javascript 날짜 포맷 변환
- javascript array shift
- JavaScript
- javascript array unshift
- 파이썬 온라인 강의
- 자바스크립트
- python 다운로드
- 파이썬 학원
- 파이썬 기초
- 파이썬 사칙연산
- javascript array method
- kakao Adfit
- javascript date format
- jQuery
- 동기 코드
- python index
- javascript array add
- python dictionary
- HTML 기초
- 파이썬 세트
- 파이썬 강의 사이트
- javascript array push
코딩이 즐겁다
[파이썬 기초] 패킹(packing)과 언패킹(unpacking) 갓벽 가이드 본문
파이썬 패킹(Packing)과 언패킹(Unpacking)이란?
파이썬(Python)에서 패킹(Packing)과 언패킹(Unpacking)은 여러 개의 값을 한 변수에 저장하거나, 다시 개별 변수로 분해하는 기능입니다. 이 기능을 사용하면 코드가 간결해지고, 데이터를 효율적으로 처리할 수 있습니다.
패킹 (Packing)
패킹(Packing)이란 여러 개의 값을 하나의 변수(튜플, 리스트, 딕셔너리 등)에 저장하는 것을 의미합니다. 리스트, 튜플 같은 자료형을 묶을 때 주로 사용되며, 가변인자 사용시에도 유용하게 사용 됩니다.
튜플 패킹
✅ 예제:
# 여러 개의 값을 하나의 튜플 변수에 저장 (패킹)
data = 1, 2, 3
print(data) # (1, 2, 3)
print(type(data)) # <class 'tuple'>
괄호 없이 여러 값을 변수에 할당하면 자동으로 튜플이 생성됩니다.
리스트 패킹
✅ 예제:
# 여러 값을 리스트에 저장
data = [10, 20, 30, 40]
print(data) # [10, 20, 30, 40]
print(type(data)) # <class 'list'>
리스트는 대괄호 []를 사용하여 여러 값을 저장할 수 있습니다.
딕셔너리 패킹
✅ 예제:
# 키-값 쌍을 하나의 딕셔너리로 패킹
person = {"name": "Alice", "age": 25, "city": "Seoul"}
print(person) # {'name': 'Alice', 'age': 25, 'city': 'Seoul'}
딕셔너리는 중괄호 {}를 사용하여 여러 값을 패킹합니다.
* 연산자를 활용한 패킹 (*, ** 가변인자 패킹)
가변 인자를 사용하는 함수는 튜플이나 리스트를 매개변수로 받게 되면 요소 갯수에 상관 없이 모두 받을 수 있다.
def func_packing (*arg) :
print(arg)
func_packing(1, 2, 3)
# (1, 2, 3)
가변 인자를 딕셔너리 자료형으로 받는 방법 입니다.
✅ 예제:
def func_packing (**arg) :
print(arg)
func_packing(a=1, b=2, c=3)
# {'a': 1, 'b': 2, 'c': 3}
가변 함수를 사용한 활용 예제
✅ 예제: * 가변 인자 사용
def func_packing (*arg) :
total = 0
for i in arg :
total += i
print(arg, total)
func_packing(1, 2)
func_packing(3, 4, 5)
func_packing(6, 7, 8, 9)
'''
출력 결과
(1, 2) 3
(3, 4, 5) 12
(6, 7, 8, 9) 30
'''
✅ 예제: ** 가변인자 사용
def func_packing (**arg) :
print(arg)
for k, v in arg.items() :
print(k, v)
func_packing(a=1, b=2)
'''
출력 결과
{'a': 1, 'b': 2}
a 1
b 2
'''
func_packing(a=3, b=4, c=5)
'''
출력 결과
{'a': 3, 'b': 4, 'c': 5}
a 3
b 4
c 5
'''
func_packing(a=6, b=7, c=8, d=9)
'''
출력 결과
{'a': 6, 'b': 7, 'c': 8, 'd': 9}
a 6
b 7
c 8
d 9
'''
언패킹 (Unpacking)
언패킹(Unpacking)이란 패킹된 값을 개별 변수로 분해하는 과정을 의미합니다. 주로 리스트나 튜플 같은 자료형에 묶여 있는 여러 값을 각각의 변수에 할당할 때 사용합니다.
튜플 언패킹
✅ 예제:
data = (1, 2, 3)
# 튜플의 값을 각각 변수에 저장
a, b, c = data
print(a) # 1
print(b) # 2
print(c) # 3
튜플의 값 개수와 변수 개수가 같아야 합니다.
리스트 언패킹
✅ 예제:
data = [10, 20, 30]
x, y, z = data
print(x) # 10
print(y) # 20
print(z) # 30
리스트도 동일한 방식으로 각 변수에 값을 분배할 수 있습니다.
딕셔너리 언패킹 (keys, values, items)
✅ 예제:
person = {"name": "Alice", "age": 25, "city": "Seoul"}
# 키와 값 언패킹
name, age, city = person.values()
print(name) # Alice
print(age) # 25
print(city) # Seoul
- .values()를 사용하면 값만 언패킹할 수 있습니다.
- .keys(), .items()도 언패킹에 활용할 수 있습니다.
별(*)을 활용한 확장 언패킹
파이썬에서는 *을 사용하여 특정 변수에 나머지 값을 리스트 형태로 저장할 수 있습니다.
튜플/리스트에서 일부 값만 언패킹
✅ 예제:
numbers = (1, 2, 3, 4, 5)
a, b, *rest = numbers
print(a) # 1
print(b) # 2
print(rest) # [3, 4, 5] → 나머지 값은 리스트로 저장
*rest는 나머지 값을 리스트로 묶어 저장합니다.
앞과 뒤 값을 고정하고 중간 값만 리스트 저장
✅ 예제:
data = [100, 200, 300, 400, 500]
first, *middle, last = data
print(first) # 100
print(middle) # [200, 300, 400]
print(last) # 500
*middle에 중간 값들만 리스트로 저장됩니다.
함수에서 *args를 활용한 언패킹
함수에서 여러 개의 인수를 받을 때 *args를 사용하면 튜플 형태로 패킹됩니다.
✅ 예제:
def my_func(*args):
print(args) # 튜플 형태로 출력
my_func(1, 2, 3, 4)
# (1, 2, 3, 4)
*args는 가변 길이 인자를 받을 때 사용됩니다.
가변인자(**)를 활용한 딕셔너리 언패킹
가변인자(**)를 사용하면 딕셔너리를 언패킹하여 함수의 키워드 인자로 전달할 수 있습니다.
💡 딕셔너리를 함수 인자로 전달
def person_info(name, age, city):
print(f"이름: {name}, 나이: {age}, 도시: {city}")
person = {"name": "Alice", "age": 25, "city": "Seoul"}
# 딕셔너리를 언패킹하여 전달
person_info(**person)
'''
출력 결과
이름: Alice, 나이: 25, 도시: Seoul
'''
** 가변 인자를 사용하면 딕셔너리의 키를 함수의 매개변수로 매칭하여 전달할 수 있습니다.
코즐
파이썬을 배우고 싶은 사람은 누구나 파이썬 학원(국비 지원 파이썬 학원)에 가지 않고도 파이썬 공부를 하면서 실력을 쌓아나갈 수 있다고 생각합니다.
파이썬 온라인 강의 자료를 올리면서 누구나 쉽게 파이썬을 공부하실 수 있도록 최선을 다해서 설명하도록 하겠습니다.
'Python' 카테고리의 다른 글
[파이썬 입문] 삼항 연산자 (if~else~) 갓벽 가이드 (117) | 2025.02.10 |
---|---|
파이썬 소수 찾기 알고리즘 (에라토스테네스의 체) 갓벽 가이드 (120) | 2025.02.08 |
[파이썬 기초] 이스케이프 문자 (Escape Characters) 갓벽 가이드 (137) | 2025.02.06 |
[파이썬 기초] 관계연산자, 논리연산자 갓벽 가이드 (100) | 2025.02.05 |
[파이썬 기초] 산술연산자, 대입연산자 갓벽 가이드 (80) | 2025.02.04 |