반응형

파이썬만의 특이한 동작이 있는데, 이중 데이터의 패킹과 언패킹이 있습니다.

 

패킹은 말그대로 둘러싼다는 의미로 하나의 변수에 여러 개의 데이터를 넣는 것입니다.

 

앞서 언급된 튜플이라는 데이터형이 있었는데, 바로 이걸 사용하면 데이터 패킹이 됩니다.

 

아래의 소스를 보면 test 1, 3 그리고 9를 한번에 넣을 수가 있는데, 이때 test라는 변수는 튜플 데이타형으로 자동으로 됩니다.

 

test = 1, 3, 9

 

그것은 아래와 같이 하면 바로 확인이 가능합니다. test의 변수 타입이 튜플임을 알 수 있고 3개의 값이 저장되어 있음을 알 수 있습니다.

 

>>> print (type(test), test)
<class 'tuple'> (1, 3, 9)

 

언패킹은 여러 개의 데이터가 패킹된 것을 풀어서 각각의 다른 변수에 저장하는 것입니다.

 

아래를 보면 test 1, 3 그리고 9가 저장되어 있었는데, 이것을 a, b, c라는 변수에 하나씩 언패킹되어 저장됨을 알 수 있습니다.

 

>>> a, b, c = test
>>> print (type(a), a, type(b), b, type(c), c)
<class 'int'> 1 <class 'int'> 3 <class 'int'> 9

 

이는 파이썬만의 독특한 동작입니다. 그리고 언패킹은 list형의 변수인 경우에도 가능합니다.

 

아래에 보면 이번에는 test list형인데, 앞에서와 마찬가지로 a, b, c 변수에 하나씩 언패킹하여 저장할 수도 있습니다.

 

>>> test = [1, 3, 9]
>>> a, b, c = test
>>> print (type(a), a, type(b), b, type(c), c)
<class 'int'> 1 <class 'int'> 3 <class 'int'> 9

 

패킹과 언패킹을 이용하면 2개의 변수 값을 바로 치환할 수 있습니다.

 

아래를 보시면 다른 언어에서는 임시 변수를 하나 만들어 2개의 변수 값을 변경해야 하는데, 파이썬에서는 아주 간단하게 2개 변수의 값을 치환할 수 있음을 알 수 있습니다.

 

>>> a = 5
>>> b = 10
>>> a, b = b, a   # b, a가 패킹되었다가 a, b에 언패킹되어 바로 치환가능
>>> print (a, b)
10 5
반응형
Posted by HLIFEINFO
,