>>> a=(10,20,30,40)
a
(10, 20, 30, 40)
>>> a[0]
10
>>> a[-1]
40
>>> a[1:]
(20, 30, 40)
>>> a[:2]
(10, 20)
파이썬 소스 입니다. 튜플의 인덱싱 및 슬라이싱에 관한 소스 입니다. 인덱싱과 슬라이싱이 해당하는지에 대해 소스 설명
설명시작)
주어진 파이썬 소스는 튜플의 인덱싱과 슬라이싱에 대한 예시입니다. 튜플은 한 번 생성되면 그 내용을 변경할 수 없는 변경 불가능한(immutable) 데이터 타입입니다.
인덱싱(Indexing)
인덱싱은 튜플 내의 단일 값에 접근하는 방법입니다. 각 요소는 0부터 시작하는 인덱스(index) 번호를 가집니다.
- a[0]는 튜플 a의 첫 번째 요소인 10에 접근합니다.
- a[-1]은 튜플 a의 마지막 요소인 40에 접근합니다. 음수 인덱스는 뒤에서부터 요소를 세며, -1이 마지막 요소를 의미합니다.
슬라이싱(Slicing)
슬라이싱은 튜플에서 일부 요소들을 잘라내어 새로운 튜플을 만드는 방법입니다. 콜론(:)을 사용하여 시작 인덱스와 끝 인덱스를 지정합니다.
- a[1:]은 인덱스 1부터 끝까지의 모든 요소를 포함하는 새로운 튜플 (20, 30, 40)을 생성합니다. 시작 인덱스가 생략되면 0부터 시작합니다.
- a[:2]는 인덱스 0부터 2 바로 앞까지의 요소를 포함하는 새로운 튜플 (10, 20)을 생성합니다. 끝 인덱스가 생략되면 끝까지 포함됩니다. 슬라이싱은 끝 인덱스를 포함하지 않습니다.
이 예시들은 파이썬에서 튜플의 인덱싱과 슬라이싱이 어떻게 작동하는지 명확하게 보여줍니다. 튜플은 리스트와 유사하게 인덱싱과 슬라이싱을 지원하지만, 요소의 추가, 삭제, 변경이 불가능하다는 점에서 리스트와 차이가 있습니다.
추가 설명)
파이썬에서 인덱싱과 인덱스의 차이
파이썬에서 인덱싱은 시퀀스 데이터 타입(예: 리스트, 튜플, 문자열)의 특정 인덱스에 해당하는 요소를 추출하는 행위입니다. 즉, 인덱스는 위치를 나타내는 값이고, 인덱싱은 그 위치를 사용해 데이터를 가져오는 동작입니다.
인덱스 (Index)
인덱스는 시퀀스 내의 각 요소에 부여된 고유한 위치 번호입니다. 파이썬의 인덱스는 0부터 시작합니다. 예를 들어, ['사과', '바나나', '딸기']라는 리스트에서 '사과'는 인덱스 0, '바나나'는 인덱스 1, '딸기'는 인덱스 2에 위치합니다. 음수 인덱스도 사용 가능한데, -1은 마지막 요소, -2는 뒤에서 두 번째 요소를 가리킵니다.
인덱싱 (Indexing)
인덱싱은 이 인덱스 번호를 사용해 시퀀스의 특정 요소에 접근하는 동작입니다. 대괄호 [] 안에 인덱스 번호를 넣어 사용합니다. 예를 들어, my_list = ['사과', '바나나', '딸기']에서 my_list[0]은 '사과'를, my_list[2]는 '딸기'를 반환합니다.
요약
| 구분 | 인덱스 (Index) | 인덱싱 (Indexing) |
| 정의 | 위치를 나타내는 번호 🔢 | 번호를 이용해 데이터에 접근하는 행위 👆 |
| 예시 | 0, 1, 2, -1, -2 | my_list[0], my_string[-1] |
| 비유 | 아파트의 호수 | 아파트 문패를 보고 집을 찾아가는 행위 |
추가설명)
파이썬에서 슬라이싱이란
슬라이싱이란? 슬라이싱은 문자열의 인덱스를 활용하여 일부분을 추출하는 것
파이썬에서 슬라이싱(Slicing)은 시퀀스(sequence) 데이터 타입(예: 문자열, 리스트, 튜플)에서 원하는 범위의 요소들을 잘라내어 새로운 시퀀스를 만드는 기법입니다. 단일 요소를 추출하는 인덱싱과는 달리, 슬라이싱은 여러 개의 요소를 한 번에 가져올 때 사용합니다.
슬라이싱의 기본 문법
슬라이싱은 [start:stop:step] 형식으로 사용됩니다.
- start: 슬라이싱을 시작할 인덱스. 생략하면 맨 처음(0)부터 시작합니다.
- stop: 슬라이싱을 끝낼 인덱스. 이 인덱스 바로 앞까지 포함됩니다. (즉, stop 인덱스는 포함되지 않음) 생략하면 맨 끝까지 포함합니다.
- step: 요소를 건너뛰는 간격. 생략하면 기본값인 1입니다.
예시: my_list = ['a', 'b', 'c', 'd', 'e', 'f']
- my_list[1:4] ➡️ ['b', 'c', 'd'] (인덱스 1부터 4 미만까지)
- my_list[3:] ➡️ ['d', 'e', 'f'] (인덱스 3부터 끝까지)
- my_list[:3] ➡️ ['a', 'b', 'c'] (처음부터 인덱스 3 미만까지)
- my_list[::2] ➡️ ['a', 'c', 'e'] (처음부터 끝까지 2칸씩 건너뛰기)
- my_list[::-1] ➡️ ['f', 'e', 'd', 'c', 'b', 'a'] (모든 요소를 역순으로 정렬)
슬라이싱의 특징
- 원본 시퀀스 불변: 슬라이싱은 원본 데이터를 변경하지 않고, 항상 새로운 시퀀스를 반환합니다.
- 얕은 복사: 슬라이싱은 리스트의 얕은 복사(shallow copy) 기능을 수행합니다. 이는 리스트 내부에 다른 리스트와 같은 변경 가능한(mutable) 객체가 있을 경우, 복사된 새 리스트의 객체와 원본 리스트의 객체가 동일한 메모리 주소를 가리킨다는 의미입니다.
모든 시퀀스에 적용 가능: 슬라이싱은 리스트뿐만 아니라 문자열, 튜플 등 모든 시퀀스 타입에 동일하게 적용됩니다.
'파이썬(Python)' 카테고리의 다른 글
| 파이썬, 내장함수, 내장자료형, 라이브러리, 메모리 상주 관련 개념정리 (4) | 2025.08.17 |
|---|---|
| 파이썬, 내장 함수와 내장 자료형의 차이 (3) | 2025.08.17 |
| 파이썬, 튜플 데이터 변경할 수 없다. 관련 예제 소스 설명 (1) | 2025.08.16 |
| 파이썬, range()함수에 대해 정리 (1) | 2025.08.16 |
| 시퀀스 자료형이란 (2) | 2025.08.16 |
콘텐츠 내 자동삽입광고
