
파이썬 리스트 인덱싱 슬라이싱 - 원하는 데이터만 쏙 꺼내기
파이썬 리스트는 여러 개의 데이터를 순서대로 담아두는 상자와 같습니다. 이 상자 안에는 이름, 숫자, 좋아하는 과일 등 다양한 종류의 데이터가 들어갈 수 있습니다. 그런데 상자 안에 데이터가 많을 때, 특정 위치의 데이터만 꺼내거나 원하는 범위의 데이터만 골라내고 싶을 때가 있습니다.
이번 강의에서는 파이썬 리스트에서 필요한 데이터만 '쏙' 골라내는 두 가지 중요한 방법, 바로 인덱싱(Indexing)과 슬라이싱(Slicing)을 배워보겠습니다. 이 방법을 익히면 리스트를 훨씬 효율적으로 활용할 수 있습니다.
인덱싱(Indexing)이란? - 딱 하나만 집기
인덱싱은 리스트에서 하나의 특정 항목을 그 위치(순서 번호)를 이용하여 가져오는 방법입니다. 리스트의 각 항목은 0부터 시작하는 순서 번호, 즉 '인덱스'를 가지고 있습니다. 마치 운동장에서 줄을 설 때 "제일 앞에 있는 친구!" 또는 "세 번째 친구!"라고 부르는 것처럼요.
파이썬 리스트의 인덱스는 0부터 시작한다는 점을 꼭 기억하세요. 첫 번째 항목의 인덱스는 0이고, 두 번째 항목의 인덱스는 1입니다.
예시 1: 리스트의 특정 위치 항목 가져오기 (양수 인덱스)
리스트 이름 뒤에 대괄호([])를 사용하고 그 안에 원하는 항목의 인덱스 번호를 넣어주면 됩니다.
위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.
세 번째 과일: 체리
예시 2: 리스트의 뒤에서부터 항목 가져오기 (음수 인덱스)
파이썬에서는 리스트의 뒤에서부터도 항목을 가져올 수 있습니다. 이때는 음수 인덱스를 사용합니다. 가장 마지막 항목은 -1, 그 앞은 -2 식으로 번호가 매겨집니다.
위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.
뒤에서 두 번째 과일: 체리
슬라이싱(Slicing)이란? - 여러 개를 한 번에 자르기
슬라이싱은 리스트의 일부분, 즉 여러 개의 항목을 한 번에 잘라서 새로운 리스트로 만드는 방법입니다. 마치 케이크 한 판에서 원하는 크기만큼 잘라내는 것과 같아요.
슬라이싱은 [시작_인덱스 : 끝_인덱스] 형태로 사용합니다. 여기서 중요한 규칙은 시작_인덱스는 포함되지만, 끝_인덱스에 해당하는 항목은 포함되지 않는다는 것입니다.
중요:
[시작_인덱스 : 끝_인덱스]에서 끝_인덱스에 해당하는 항목은 결과에 포함되지 않습니다. 꼭 기억해두세요!
예시 3: 리스트의 특정 범위 항목 가져오기 (기본 슬라이싱)
숫자 리스트를 만들고 인덱스 2부터 인덱스 5 직전까지의 항목들을 가져와 보겠습니다.
위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.
결과에 5가 포함되지 않은 것을 확인하세요!
예시 4: 슬라이싱 시작/끝 생략 및 건너뛰기 (스텝)
슬라이싱을 할 때 시작 인덱스나 끝 인덱스를 생략하면 리스트의 처음 또는 끝까지를 의미합니다. 또한, [시작 : 끝 : 단계] 형태로 '단계(step)'를 지정하여 원하는 간격으로 항목을 가져올 수도 있습니다.
위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.
인덱스 7부터 끝까지: [7, 8, 9]
처음부터 끝까지 2단계씩: [0, 2, 4, 6, 8]
주의:
존재하지 않는 인덱스로 항목을 가져오려고 하면 IndexError가 발생합니다. 예를 들어, 항목이 4개인 리스트에서 my_list[5]처럼요. 리스트의 크기를 확인하고 사용하세요.
핵심 : 인덱싱은 리스트[위치]를 사용하여 한 개의 항목을 가져오고, 슬라이싱은 리스트[시작:끝:단계]를 사용하여 여러 개의 항목(리스트의 일부분)을 가져옵니다. 이때 끝 인덱스 항목은 결과에 포함되지 않습니다.
마무리 요약
이번 시간에는 파이썬 리스트에서 원하는 데이터를 꺼내는 두 가지 방법, 인덱싱과 슬라이싱을 자세히 배워보았습니다. 인덱싱으로 특정 위치의 항목 하나를, 슬라이싱으로 특정 범위의 항목 여러 개를 효율적으로 가져올 수 있다는 것을 실습을 통해 확인했습니다. 이 두 가지 방법은 리스트를 다룰 때 가장 기본적이고 중요한 기술이니 꼭 익혀두시길 바랍니다. 다음 강의에서는 리스트의 항목을 추가하거나 수정하고 삭제하는 방법에 대해 알아보겠습니다.
실제 코딩이 잘 되었는지 터미널 출력 결과도 꼭 확인하세요.
질문이 있다면 댓글에 남겨주세요.