파이썬로드

파이썬 리스트 자료형, 리스트의 인덱싱과 슬라이싱

CODINGLORD 2024. 6. 23. 14:18

리스트 인덱싱

리스트의 인덱싱은 리스트의 특정 위치에 있는 요소를 가져오는 방법입니다. 인덱스는 0부터 시작합니다.

# 리스트 생성
fruits = ["apple", "banana", "cherry", "date"]

# 인덱싱을 통해 요소 접근
print(fruits[0])  # 첫 번째 요소: apple
print(fruits[2])  # 세 번째 요소: cherry
print(fruits[-1]) # 마지막 요소: date (음수 인덱스를 사용하면 뒤에서부터 셈)

※삼중리스트 인덱싱

삼중 리스트는 리스트 안에 리스트가 있고, 그 안에 또 리스트가 있는 구조입니다. 인덱싱을 통해 삼중 리스트의 특정 요소에 접근하는 방법을 설명하겠습니다.

 

예제

# 삼중 리스트 생성
nested_list = [
    [[1, 2, 3], [4, 5, 6]],
    [[7, 8, 9], [10, 11, 12]],
    [[13, 14, 15], [16, 17, 18]]
]

# 삼중 리스트에서 특정 요소 접근
# 예: 첫 번째 리스트의 두 번째 리스트의 세 번째 요소
element = nested_list[0][1][2]

# 결과 출력
print(element)  # 6

단계별 설명

  1. nested_list[0]
    • nested_list의 첫 번째 요소를 가져옵니다.
    • 결과: [[1, 2, 3], [4, 5, 6]]
  2. nested_list[0][1]
    • 첫 번째 리스트([[1, 2, 3], [4, 5, 6]])의 두 번째 요소를 가져옵니다.
    • 결과: [4, 5, 6]
  3. nested_list[0][1][2]
    • 두 번째 리스트([4, 5, 6])의 세 번째 요소를 가져옵니다.
    • 결과: 6

전체 설명

  • nested_list[0]은 전체 리스트에서 첫 번째 요소인 [[1, 2, 3], [4, 5, 6]]를 가져옵니다.
  • nested_list[0][1]은 첫 번째 리스트 안에서 두 번째 요소인 [4, 5, 6]를 가져옵니다.
  • nested_list[0][1][2]은 [4, 5, 6] 안에서 세 번째 요소인 6을 가져옵니다.

이렇게 단계별로 접근하여 삼중 리스트의 특정 요소에 도달할 수 있습니다.


리스트 슬라이싱

리스트의 슬라이싱은 리스트의 부분 리스트를 가져오는 방법입니다. 슬라이싱의 기본 형태는 list[start:end]입니다. start는 시작 인덱스, end는 끝 인덱스 (포함되지 않음)입니다.

# 리스트 생성
fruits = ["apple", "banana", "cherry", "date", "elderberry"]

# 슬라이싱을 통해 부분 리스트 가져오기
print(fruits[1:3])  # 인덱스 1부터 3 이전까지: ['banana', 'cherry']
print(fruits[:2])   # 처음부터 인덱스 2 이전까지: ['apple', 'banana']
print(fruits[2:])   # 인덱스 2부터 끝까지: ['cherry', 'date', 'elderberry']
print(fruits[-3:])  # 마지막 세 요소: ['cherry', 'date', 'elderberry']

요약

  • 인덱싱은 특정 위치의 요소를 가져오는 방법입니다.
    • fruits[0]은 첫 번째 요소를 가져옵니다.
    • fruits[-1]은 마지막 요소를 가져옵니다.
  • 슬라이싱은 리스트의 일부를 가져오는 방법입니다.
    • fruits[start:end]은 start 인덱스부터 end 인덱스 이전까지의 요소를 가져옵니다.

다음은 인덱싱과 슬라이싱의 예제입니다:

# 리스트 생성
fruits = ["apple", "banana", "cherry", "date", "elderberry"]

# 인덱싱
print(fruits[1])    # banana
print(fruits[-2])   # date

# 슬라이싱
print(fruits[1:4])  # ['banana', 'cherry', 'date']
print(fruits[:3])   # ['apple', 'banana', 'cherry']
print(fruits[2:])   # ['cherry', 'date', 'elderberry']

 

※ 중첩된 리스트에서 슬라이싱하기

a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
a[2:5]
[3, ['a', 'b', 'c'], 4]
a[3][:2]
['a', 'b']