📕🐘 도로락 - 코끼리를 냉장고에 넣는 방법
Python | 2018. 7. 13. 12:46

[Python] 리스트, 문자열 같은 시퀀스 타입 Packing, Unpacking

언패킹(Unpacking)

예를 들어 문자열의 각 문자 요소들을 여러개의 변수에 나누가 싶다면 다음과 같이 간단하게 가능합니다.

>>> a, b, c, d, e = 'Hello'
>>> a
'H'
>>> b
'e'
>>> c
'l'
>>> d
'l'
>>> e
'o'

만약 언패킹시에 나누어 담을 변수와 언패킹할 대상 시퀀스의 length가 다르면 다음과 같은 오류가 발생합니다.

변수보다 시퀀스의가 더 큰 경우.

변수는 네 개인데, 시퀀스의 요소는 5입니다.

>>> a, b, c, d = 'Hello'
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    a, b, c, d = 'Hello'
ValueError: too many values to unpack (expected 4)

시퀀스보다 변수의 개수가 더 많은 경우입니다. f 변수에는 언패킹시 들어갈 값이 없습니다.

>>> a, b, c, d, e, f = 'Hello'
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    a, b, c, d, e, f = 'Hello'
ValueError: not enough values to unpack (expected 6, got 5)

패킹(Packing)

언패킹과 반대로 패킹은 기존에 있던 변수 값들을 하나로 뭉치는 것 입니다. 패킹을 하는경우 패킹된 대상은(여기서는 d 변수) 튜플 타입입니다.

>>> a = [1,2]
>>> b = [3,4]
>>> c = 'Hello'
>>> d = a, b, c
>>> d
([1, 2], [3, 4], 'Hello')
도로락

도로락

Writer

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그