*shell 환경이 아닌 스크립트(script) 환경에서 작업했기 때문에 print로 출력. shell 환경이라면 print 생략 가능
._시퀀스 객체의 각 요소는 순서가 정해져 있으며, 이 순서를 인덱스(index)라고 부른다. 인덱스는 위치 값을 뜻하는데 시퀀스 객체의 인덱스는 항상 0부터 시작한다.
형태 : 시퀀스객체[인덱스]
예.
a = [1, 2, 3 ,4, 5]
print(a[0]) #리스트의 첫 번째 인덱스0 요소 출력
print(a[1]) #리스트의 두 번째 인덱스1 요소 출력
print(a[2]) #리스트의 세 번째 인덱스2 요소 출력
print(a[3]) #리스트의 네 번째 인덱스3 요소 출력
print(a[4]) #리스트의 다섯 번째 인덱스4 요소 출력
마찬가지로 튜플, range, 문자열도 [ ]에 인덱스를 지정하면 해당 요소를 가져올 수 있다.
예.
b = (38, 21, 53, 62, 19)
print(b[0]) # 튜플의 첫 번째(인덱스 0) 요소 출력
r = range(0, 10, 2)
print(r[2]) # range의 세 번째(인덱스 2) 요소 출력
hello = 'Hello, world!'
print(hello[7]) # 문자열의 여덟 번째(인덱스 7) 요소 출력
._시퀀스 객체에 인덱스를 지정하지 않으면 리스트 전체가 출력된다.
._ __getitem__ method
시퀀스 객체에서 [ ](대괄호)를 사용하면 실제로는 __getitem__ 메서드를 호출하여 요소를 가져온다. 따라서 아래와 같이 __getitem__ 메서드를 직접 호출하여 요소를 가져올 수 있다.
예.
a = [38, 21, 53, 62, 19]
print(a.__getitem__(1))
결과값 : 21
._음수 인덱스
시퀀스 객체에 인덱스를 음수로 지정하면 뒤에서부터 요소에 접근하게 된다. 즉, -1은 뒤에서 첫 번째, -5는 뒤에서 다섯 번째 요소이다. 따라서 a[-1]은 뒤에서 첫 번째 요소인 19, a[-5]는 뒤에서 다섯 번째 요소인 38이 나온다.
._물론 튜플, range, 문자열도 마찬가지로 음수 인덱스를 적용할 수 있다.
._인덱스 범위를 벗어나면 IndexError가 발생한다.
예.
a = [1, 2, 3, 4, 5]
print(a[5]) # IndexError 발생.
리스트 a의 요소 개수는 5개인데 a[5]와 같이 지정하면 리스트의 범위를 벗어나게 되므로 에러가 발생한다. 왜냐하면 인덱스는 0부터 시작하므로 마지막 요소의 인덱스는 4이기 때문이다. 즉, 마지막 요소의 인덱스는 시퀀스 객체의 요소 개수보다 1 작다. 마찬가지로 튜플, range, 문자열도 범위를 벗어난 인덱스를 지정하면 IndexError가 발생한다.
예.
print(a[len(a)- 1]) #인덱스 범위 - 1로 a의 마지막 요소 출력
a[] 인덱스 안에 a객체의 길이-1 = 4니까 a[4]를 출력하는 것과 같다. 시퀀스의 마지막 인덱스를 구할 때 사용하는 방법
._요소에 값 할당하기
예.
c = [0, 0, 0, 0, 0]
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
print(c)
결과값 : [1, 2, 3, 4, 5]
._하지만 tuple, range, 문자열은 안에 저장된 요소를 변경할 수 없다. 즉, 시퀀스 자료형에서 tuple, range, 문자열은 읽기 전용이다.
._요소 삭제하기
형태 : del 시퀀스객체[인덱스]
예.
d = [1, 2, 3, 4, 5]
del d[2] #d의 세번째 객체 값 삭제
print(d)
결과값 : [1, 2, 4, 5] 출력
._하지만 tuple, range, 문자열은 안에 저장된 요소를 변경할 수 없기 때문에 tuple, range, 문자열은 요소 삭제 불가
'Programming > Python' 카테고리의 다른 글
[코딩도장-파이썬] 딕셔너리(Dictionary) (0) | 2020.11.11 |
---|---|
[코딩도장-파이썬] 슬라이스(Slice) (0) | 2020.11.11 |
[코딩도장-파이썬] 시퀀스(Sequence) 자료형 활용하기 2 (0) | 2020.11.11 |
[코딩도장-파이썬] 시퀀스(Sequence) 자료형 활용하기 1 (0) | 2020.11.10 |
[코딩도장-파이썬] 튜플(Tuple) (0) | 2020.11.10 |