<개인공부>/[Python]

[Python] 파이썬 index() 함수 정리 (문자 위치 찾기, 리스트 위치 찾기)

BlockDMask 2025. 4. 23. 23:20
반응형

안녕하세요. BlockDMask 입니다.

오늘은 파이썬에서 문자열 또는 리스트에서 특정 값의 위치(index)를 찾을 수 있는 index() 함수에 대해 알아보겠습니다.

문자열에서 문자 위치를 찾거나, 리스트에서 특정 값의 위치를 구할 때 자주 사용하는 함수예요.
사용 방법과 주의할 점, 에러가 나는 상황까지 예제와 함께 정리해볼게요.



1. 문자열에서 index()

text = "BlockDMask"
position = text.index("D")
print(position)  # 5

사용법: str.index(sub[, start[, end]])
매개변수: 찾고자 하는 부분 문자열(sub), 시작 위치(start), 끝 위치(end) (옵션)
반환값: 첫 번째로 일치하는 부분의 위치 (0부터 시작)
특징: 찾는 문자열이 없으면 ValueError 발생
언제 쓰나? → 문자열에서 특정 문자의 위치를 정확히 알고 싶을 때



2. 리스트에서 index()

fruits = ["apple", "banana", "cherry", "banana"]
pos = fruits.index("banana")
print(pos)  # 1

사용법: list.index(x[, start[, end]])
매개변수: 찾을 값(x), 탐색 시작 위치, 탐색 끝 위치 (옵션)
반환값: 첫 번째로 일치하는 요소의 위치 (0부터 시작)
특징: 중복 값이 있어도 첫 번째 값의 위치만 반환
언제 쓰나? → 리스트에서 특정 요소가 어디에 있는지 알고 싶을 때



3. 찾는 값이 없을 경우 예외 발생

text = "BlockDMask"
print(text.index("Z"))  # ValueError: substring not found

설명: index() 함수는 값을 못 찾으면 ValueError를 발생시킵니다.

if "Z" in text:
    print(text.index("Z"))
else:
    print("Z는 존재하지 않음")

팁: 존재 여부를 먼저 in으로 확인하고 나서 사용하는 것이 안전합니다.



4. 시작 위치 지정하기

numbers = [1, 2, 3, 2, 4]
pos = numbers.index(2, 2)
print(pos)  # 3

설명: 2라는 값을 찾되, 인덱스 2번부터 탐색을 시작합니다.
동일한 값이 여러 개 있을 때 유용합니다.



5. 문자열 예제: 전체 탐색 (start, end)

text = "hello world hello"
pos = text.index("hello", 6)
print(pos)  # 12

설명: "hello"가 두 번 등장하지만, 시작 위치를 6으로 설정했기 때문에 두 번째 위치가 출력됩니다.



6. 리스트 예제: 값이 중복될 때

names = ["Alice", "Bob", "Charlie", "Alice"]
print(names.index("Alice"))  # 0

설명: "Alice"가 두 번 있어도 첫 번째 위치만 반환합니다.



7. index() vs find() 비교

text = "BlockDMask"
print(text.find("D"))  # 5
print(text.find("Z"))  # -1

차이점: find()는 값을 못 찾으면 -1을 반환하고, index()는 ValueError를 발생시킵니다.
언제 쓰나? → 예외 없이 값만 확인하고 싶으면 find() 사용



결론 정리

함수 대상 못 찾았을 때 반환값 사용 시기
index() 문자열, 리스트 ValueError 발생 첫 번째 위치 정확한 위치 필요할 때
find() 문자열만 -1 반환 첫 번째 위치 예외 없이 탐색할 때



이상, 파이썬의 index() 함수 정리에 대해 예제 중심으로 알아보았습니다.
오늘도 읽어주셔서 감사합니다.

반응형