리스트나 튜플의 원소에 접근할 때는 인덱스index를 사용하면 된다.
아이패드에 정리한 그림으로 인덱스의 개념을 살펴보자.
막 쓴거니까 날아가는 글씨체는 무시해주세요 ^^
JAVA, JS, C++ 등 다른 언어에서는 보지 못한 음수 인덱스를 파이썬에서 처음 봤다😗 간단하다. 그냥 맨 앞에서 -(전체 원소 수)부터 1씩 증가하면 된다.
인덱스 연산자 [ ] 안에 정숫값 인덱스를 지정하는 인덱스식은 리스트의 특정 원소를 정할 수 있다. 아래 코드를 보자
x=[11,22,33,44,55,66,77]
print(x[2]) #33
print(x[-3]) #55
x[-4]=3.14 #x[-4] 원소를 3.14로 바꾼다
print(x) #[11,22,33,3.14,55,66,77]
print(x[7]) #존재하지 않는 인덱스이므로 오류 출력
x[7]=3.14 #x[7]에는 값을 대입할 수 없으므로 오류 출력
인덱스식 x[-4]=3.14 코드를 잘 살펴보면 좌변에 인덱스식을, 우변에 대입식을 놓는다. 그러면 44(int)에서 3.14(float)으로 자동 형 변환이 된다. 이때 값 자체가 복사되는 것이 아니라 x[-4]가 참조하는 객체의 식별 번호가 변경되는 것이다. 다시 말하면, x[-4]가 참조하는 객체의 식별 번호가 int형 객체 44에서 float형 객체 3.14로 달라진 것뿐이다.
🖐 x가 리스트가 아닌 튜플이면 오류가 발생한다. 튜플은 immutable 객체이고 리스트는 mutable 객체니까!
그리고 x[7]를 출력하는 코드 보면 당연히 오류난다. 그런 인덱스는 존재하지 않기 때문이다. 당연히 x[7]=3.14 처럼 대입해도 오류난다.
즉, 존재하지 않는 원소에 접근하거나 대입해도 원소가 새롭게 추가되지는 않는다.
출처 : Do it! 자료구조와 함께 배우는 알고리즘 입문- 파이썬 편