본문 바로가기
Python/Python Basic

7. Python - 변수 자료형 2, Tuple

by Rosmary 2019. 8. 1.
728x90
반응형

지난 포스팅에 이어, 이번에는 Python의 변수 자료형 중 하나인 Tuple에 대해 살펴보려고 한다(이 녀석은 한글로 바꿀만한 적당한 단어가 생각이 안난다... 따라서 그냥 Tuple이라고 계속 명시할 것이다)

 

 

1. Tuple

 

Tuple은 List와 굉장히 유사하다. 여러 개의 변수를 포함하며, 각 변수마다 다양한 변수값을 가질 수 있다는 것도 공통점이다. 외형상으로 나타나는 유일한 차이는 바로 괄호의 형태인데, Tuple은 아래와 같이 일반적인 소괄호를 사용함으로써 선언할 수 있다.

 

====================

변수명 = ( 값1, 값2, 값3, ...) 

====================

 

List와 마찬가지로, Tuple 또한 하나의 변수명으로 여러 개의 연관된 값을 가질 수 있다. 가령 필자가 Alex라는 사람의 개인 정보를 튜플로 저장한다고 하면 다음과 같이 진행할 수 있을 것이다. 심심하신 분들은 다른 정보를 Tuple 형태로 선언하는 것을 시도해보기 바란다.

 

 

List와 유사한 형태를 띄다 보니, Tuple 내의 각 값에 대한 접근 또한 List와 유사하며, 이를 통해 새로운 변수에 대입하는 것도 가능하다.

 

 

그렇다면, List와 동일한 형태를 가지는 Tuple은 왜 만들어졌을까? Python의 창시자가, 단지 괄호 모양이 마음에 들지 않는다는 이유로 Tuple을 만들지는 않았을텐데 말이다. 

 

 

 

2. Tuple과 List의 차이

 

List에 대해서 설명하면서, List 안의 변수 값을 변경할 수 있다고 지난 포스팅에서 언급했었다. 이제 Tuple의 내용도 List와 마찬가지로 변경해보자. 아마 에러가 발생할 것이다.

 

 

가장 아래에 나타나는 에러 문구를 보면, "TypeError 어쩌구 저쩌구..."라는 부분에 튜플은 각 원자에 값의 할당이 불가능하다고 명시되어 있다(Tuple object does not support item assignment). 이를 통해, Tuple은 List와 달리, 맨 처음 선언할 때를 제외하면 원자값(에러에는 item이라는 단어로 나온다)의 변경이 불가능하다는 말이다. 혹시, .append() 메서드를 사용해서 값을 추가하는 것은 가능할까??

 

 

역시나 에러가 뜬다. Tuple은 선언된 값이 바뀌는 것을 막기 위해 나타난 자료형이기 때문에, List와 비슷한 형태를 띄고 있다 하더라도, append나 remove 같은 메서드를 제공하지 않는다. Tuple을 사용하면서 List와 동일하게 사용할 수 있는 메서드는 단 두 개 뿐인데, Tuple 내 변수의 갯수 값을 반환하는 .count()와, 해당 변수값의 위치 정보를 반환하는 .index()뿐이다. 

 

 

 

 

3. 변수값의 수정이 불가능한 자료형은 왜 사용하는 걸까?

 

우리가 접하는 많은 정보 중, 값이 변해도 생활에 지장없는 것이 있고, 그렇지 않은 것이 존재한다. 전자의 예를 들자면, 나이, 주소지(이사를 생각해보자),  휴대폰 번호 등등등이 있다. 하지만 주민등록번호나 공인인증서 암호같은 경우는?? 왠만해서 변할 일도 없지만 누군가에 의해 변해서도 안되는 중요한 정보다.

 

특정 프로그램을 코딩하는 과정에서도, 누군가에 의해 악의적으로 변경되지 않아야하는 성격을 갖는 정보를 사용하기도 한다. 따라서 이런 정보는 일반적인 변수 선언보다, Tuple로 선언을 하는 것이 훨씬 안전하다. 

 

============================================================================

important_info = ("800101-1234567", "P@ssw0rd")    => 주민등록번호와 암호를 Tuple로 선언했다.

============================================================================

 

 

Tuple에 대한 설명은 이걸로 끝이다.(응??)

 

 


 

사실 프로그래밍을 처음 접하는 입장이라면, 어느 정보를 중요하게 취급해야할지 감이 안잡히기 때문에, Tuple을 사용할 일이 극히 드물다. 하지만, 자신만의 프로그램을 하나씩 개발하다보면, Tuple의 중요성을 인지하게 되는 날이 오게 될 것이다.

 

다음 포스팅에서는 마지막 Python 자료형인, Dictionary에 대해 알아보려 한다.

 

 

 

FIN. 

반응형

댓글