안녕하세요. 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() 함수 정리에 대해 예제 중심으로 알아보았습니다.
오늘도 읽어주셔서 감사합니다.
'<개인공부> > [Python]' 카테고리의 다른 글
[Python] 파이썬 리스트 슬라이싱 정리 ([start:end:step] 완전 이해) (0) | 2025.04.29 |
---|---|
[Python] 파이썬 리스트 정렬 심화 - key, reverse, lambda, 사용자 정의 정렬까지 (0) | 2025.04.25 |
[Python] 파이썬에서 None, null, is None 차이 정리 (0) | 2025.04.07 |
[Python] 파이썬 range()의 숨겨진 기능들 (0) | 2025.04.05 |
[Python] 파이썬 클래스 변수 vs 인스턴스 변수 차이 (0) | 2025.04.03 |
[Python] 파이썬 클래스 초보자 가이드 (__init__, self) (1) | 2025.04.01 |
[Python] 파이썬에서 날짜 다루기 (datetime 기본부터 실전까지) (0) | 2025.03.31 |
[Python] 파이썬 리스트 컴프리헨션 vs for문 (0) | 2025.03.29 |