python 자료형에는 tuple 이란 것도 있습니다.
tuple 은 list 와 매우 유사합니다.
tuple 이 list 와 다른 점이라면 tuple 은 element 를 추가/삭제하거나 수정할 수 없다는 것입니다. 그리고, list 는 대괄호('[]')를 사용하는 반면, tuple 은 소괄호('()')를 사용합니다.
이는 tuple 과 list 변수 하나를 만들고 dir 을 통해 두 객체의 멤버함수 list 를 확인하면 즉시 알 수 있습니다. 아래 결과를 보시면 tuple a 의 경우 해당 객체의 데이터멤버를 변경하기 위해 사용되는 함수들이 모두 제거되어 있음을 볼 수 있습니다. 오로지 count 와 index 밖에 사용할 수 없군요.
>>> a # tuple >>> dir(a) ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'] >>> dir(b) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] |
이렇게 list 에 비해 사용할 수 있는 범위가 적다는 것 외에는 다른점이 거의 없습니다.
기본적으로 tuple 은 list 를 사용하듯이 사용하면 됩니다.
>>> a # list |
이러한 tuple 은 어떨 때 사용하면 편리할까 ?
tuple 은 기본적으로 element 의 갯수가 고정되어 있고, 그 element 의 값이 한번 할당되면 수정이 불가능하므로, Database 로 말하면 primary key 처럼 사용할 수 있습니다.
즉, 검색이나 정렬을 할 때 하나 이상의 숫자나 문자 조합을 검색 key 또는 정렬 key 로 사용할 때 유용하게 사용할 수 있습니다.
또는, 다수의 변수에 한꺼번에 값을 할당하고 싶을 때 사용하기도 합니다. (물론 이는 tuple 의 기능을 포함하는 list 로도 가능하긴 합니다.)
다음의 예를 볼까요 ?
>>> a = [(1,"b"), (2,"a"), (1,"a")] # 2 개의 key 를 이용하여 sorting 할 때 사용하면 편리 |
출처 : http://cloudrain21.tistory.com/entry/파이썬python-튜플Tuple의-이용
'Python' 카테고리의 다른 글
python file (0) | 2014.05.02 |
---|---|
python dictionary (0) | 2014.05.02 |
python list sorting (0) | 2014.05.02 |
python list2 (0) | 2014.05.02 |
python list (0) | 2014.05.02 |