튜플자료

리스트와 비슷하지만 값을 변경할 수 없는 자료형이다. 튜플자료는 () 로 나타내며, 사용법은 리스트와 비슷하다. 차이점은 리스트의 멤버는 그 값을 변경할 수 있지만 튜플의 멤버는 그 값을 변경할 수 없다.



첫번째 멤버인 1을 2로 바꾸기 위해 tupledata[0] = 2 를 실행하면 에러가 나는 것을 확인할 수 있다. 튜플은 멤버값이 변경되지 않게 하고싶을때 사용되는 자료이다.



시퀸스 자료형


어떤 객체가 순서를 가지고 나열되어 있는 자료형을 시퀸스 자료형이라고 한다.


파이썬 기본 자료형 중 시퀸스 자료형은 문자열 이외에 리스트, 튜플이 있다.


-자료형의 종류


파이썬의 시퀸스 자료형은 다음과 같은 공통 특성을 갖고 있다.


 특성

설명

인덱싱 

인덱스를 통해 해당 값에 접근할 수 있다. 

(인덱스는 0부터 시작) 

슬라이싱 

특정 구간의 값을 취할 수 있다. 

(시작 인덱스와 끝 인덱스로 정의한다.) 

 연결

'+' 연산자를 이용해 두 시퀸스 자료를 연결하여 

새로운 시퀸스 자료로 생성 

반복 

'*' 연산자를 이용해 시퀸스 자료를 여러번 반복하여 

새로운 시퀸스 자료로 생성 

멤버 확인 

어떤 값이 시퀀스 자료에 속해 있는지 확인 ('in' 키워드) 

길이 정보 

자료의 멤버 개수또는 문자열 길이를 알수 있다. (len( ) 함수 이용)


인덱싱



시퀀스 자료형에서 인덱스를 통해 해당하는 값을 얻는 방법이다.


자료형은 0부터 시작하며 음수의 경우 끝에서부터 몇번째 라고 말하는 것과 같다.


따라서 str[-1] = 'n' 이고 str[-3] = 'h'가 되는 것이다.



슬라이싱


슬라이싱은 시퀀스 자료형에서 인덱스로 범위를 표현하여 범위에 해당하는 시퀀스 자료의 일부를 구현하는 방법이다.


[시작 인덱스:끝인덱스:스텝] 의 방법으로 접근한다.


여기서 시작 인덱스는 슬라이싱 범위의 시작을, 끝인덱스는 슬라이싱 범위의 끝을, 스텝은 자료를 취하는 간격을 의미한다. 


스텝은 디폴트1이므로 이부분은 생략가능하다.


이를 부등식으로 나타내면 "시작 인덱스 이상이고 끝 인덱스 미만" 을 의미한다.



str = 'I love Python'의 양수 인덱스와 음수 인덱스


 str


 

 양

 0

10 

11 

12 

 음

-13 

-12 

-11 

-10 

-9 

-8 

-7 

-6 

-5 

-4 

-3 

-2 

-1 


위 표를 참고하여 예시에서 보인 슬라이싱 범위를 풀어보자.


str [0:3] -> 인덱스 0이상 3미만까지 슬라이싱 = 'I l'

str [:6]  ->  인덱스 0이상 6미만까지 슬라이싱 = 'I love'

str[:-3]  ->  처음부터 끝에서 3번째 미만까지 슬라이싱 = 'I love Pyt'

str[-5]  ->  끝에서 5번째 이상부터, 끝까지 슬라이싱 = 'ython'



※스텝이 있는 슬라이싱



str[: :2]  -> 처음부터 끝까지 스텝을 2로 슬라이싱 

즉 인덱스가 0,2,4,6 인 부분을 꺼내서 결과로 보여줌 ='Ilv yhn'


str[: :-1]  -> 처음부터 끝까지 스텝을 -1로 해서 슬라이싱

즉 문자열 모든 범위에서 스텝을 거꾸로 1씩 가면서 슬라이싱하므로 

문자열의 역순이 결과로 나온다 = 'nohtyP evol I'



'+' 를 이용한 연결


'+' 연산자를 이용해 두개의 시퀀스 자료를 결합한다.




'*' 를 이용한 연결


'*'연산자를 이용해 시퀀스 자료를 지정된 숫자만큼 반복한다.



'in' 키워드 를 이용한 멤버 확인


시퀀스 자료에 특정한 값이 멤버로 있는지 확이 가능하다.



'o'라는 문자와 'love'라는 문자열은 문자열자료 str 에 존재하므로 True 를 리턴한다.

'A'라는 문자는 문자열자료 str 에 존재하지 않으므로 False 를 리턴한다.


시퀀스 자료에 어떤 객체가 존재하는지 확인하고자 하는 경우 if 문과 in 키워드를 이용해 루틴을 구현하는 것이 일반적인 방법이다.




결과




※ 시퀀스 자료형은 아니지만 사전자료에서도 'in' 키워드를 쓸 수 있다.


len( ) 를 이용한 길이 정보


모든 시퀀스 자료는 크기를 가지고 있다. 문자열은 문자열을 구성하는 문자 개수가 크기이고 리스트는 리스트에 포함된 멤버 개수가 크기이다. 튜플 역시 리스트와 동일하게 포함된 맴버 개수가 크기이다.



※사전자료에 len( )함수가 사용되면 사전 자료의 멤버인 (키:값)쌍의 개수를 리턴함.






'Language > Python' 카테고리의 다른 글

5. Python 기초문법(5)  (0) 2016.07.19
3. Python 3 기초문법(3)  (0) 2016.07.19
2. Python 3 기초문법(2)  (0) 2016.07.19
1. python 3 기초문법  (0) 2016.07.19

+ Recent posts