본문 바로가기
📚Languages/Python3 개념·문법·에러

[Python3 문법] packing(패킹)과 unpacking(언패킹)의 개념과 객체 요소 출력하기

by psS2mj 2020. 10. 24.
반응형

(서론👩🏻) 수업을 듣다가 2차원 배열의 입력을 제대로 받았는지 확인하는 과정에서 이 unpacking이라는 개념을 새롭게 알게 된 김에 공부해봤다. 쌍으로 묶여져 있는 요소들을 따로따로 빼내는 역할을 한다고 생각하면 된다고 하고, 또 자주 쓰이는 개념이라고 해서 알아보려고 한다.


파이썬에서는 packing(패킹)과 unpacking(언패킹)이라는 개념이 존재한다.

👆🏻클릭 시 해당 문서로 이동합니다.

 

말 그대로 packing(패킹)은 포장되어있는 상태고, unpacking(언패킹)은 그 포장을 풀어헤치는 것이라고 생각하면 좀 더 쉬울 것 같다. 인덱스로 접근이 가능한 iterable 자료형(List, Tuple, Dictionary, Set, Map 등)의 요소들을 하나하나씩 unpacking, 즉, 풀어헤치는 것이다. unpacking은 풀어헤치려는 앞에 *(asterisk,별표)를 붙여주면 끝이다.

 

설명은 간단하지만, 조금은 생소한 개념이라 말로만 설명하면 이해가 어려우니 예시 코드를 한 번 보자.

코드
출력 결과

예시 코드에서는 2차원 배열을 한 번 풀어헤쳐봤다.

 

test라는 2차원 배열이 있다.

1. 그냥 출력하기

print(test)

출력 결과:
[[1,2,3,4], [5,6,7,8]]

그냥 출력했을 때는 당연하게도 test라는 2차원 배열이 그대로 출력된다.

 

 

2. unpacking

print(*test)

출력 결과:
[1,2,3,4], [5,6,7,8]

unpacking은 풀어헤치려는 객체의 앞에 *를 붙여주면 끝이다.

출력 결과를 한 번 살펴보니 아무래도 2차원 배열의 첫 번째 원소인 [1,2,3,4]와 두 번째 원소인 [5,6,7,8]가 하나씩 출력된 것 같다. 원래의 test에서 한 번 풀어헤쳐진거라고 볼 수 있겠지?🤔

 

 

3. 행 별로 unpacking

for row in test:
	print(*row)
    
출력 결과:
1 2 3 4
5 6 7 8

이번에는 test라는 2차원 배열의 각 행들을 풀어헤쳐봤다. 이번에도 간단하게 *만 붙여주면 끝이다.

출력 결과를 살펴보면 궁극적으로 2차원 배열의 각 요소들의 순수한 int 값들만이 출력된 것을 확인할 수 있다. 이런 식으로 unpacking을 해주면 리스트가 아니라 리스트 안의 각각의 요소들을 하나씩 출력해준다.


😎참고할 만한 사이트:

wikidocs.net/22801

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

dojang.io/mod/page/view.php?id=2345

 

파이썬 코딩 도장: 30.1 위치 인수와 리스트 언패킹 사용하기

Unit 30. 함수에서 위치 인수와 키워드 인수 사용하기 지금까지 간단하게 'Hello, world!'를 출력하는 함수와 두 수를 더하는 함수를 만들어보았습니다. 파이썬에서는 함수를 좀 더 편리하게 사용할

dojang.io

itholic.github.io/python-pack-unpack-1/

 

[python] packing, unpacking 1 (*args)

packing, unpacking

itholic.github.io

programmers.co.kr/learn/courses/2/lessons/288

 

파이썬 입문 - packing, unpacking

### 수료증 발급 관련 현재 수료증 관련 요청이 폭증하고 있습니다. 프로그래머스는 특별한 경우를 제외하고는 **무료 강의** 에 대해 수료증을 발급하지 않고 있습니다. 증빙용 수료증이 필요하

programmers.co.kr

반응형

댓글