s = 'abcdefa'
# 문자열 인덱스를 구하는 방식은 find()와 index() 동일!!
s.find('a')
# 0 반환
s.find('def')
# 3 반환 (문자열 인덱스 찾기도 가능!!)
s.find('b', 1)
# 1 반환 (두 번째 인자 1은 시작 위치 --> 'b'의 위차기 1이기때문에 s.find('b')의 반환값과 동일)
s.find('b', 3, 8)
# 7반환 (세 번째 인자 8은 마지막 위치 + 1 --> 8 바로 앞의 7까지)
s.find('b', 3, 8) # ---> -1 반환
s.index('b', 3, 8) # --> 에러 발생
파이썬에서는 인덱스를 찾을 때 쓸 수 있는 index 함수와 find함수가 있다.
두 함수 모두 찾고자 하는 요소의 인덱스를 반환해주는데,
find함수는 문자열에만 사용할 수 있고
index함수는 문자열과 리스트, 튜플에서 쓸 수 있다.
또한 반환값이 없을 경우
find함수는 -1을 반환하고,
index함수는 ValueError를 발생시킨다.
두 함수는 모두 처음 검색된 인덱스만을 반환시켜주기 때문에
중복된 요소의 모든 인덱스를 구하고 싶을 때는 filter 함수를 쓰면 된다.
filter함수는 다음과 같다.
# fliter(조건 함수, 순회 가능한 데이터)
num = [2, 4, 6, 8, 10, 12, 14, 16]
def filter_func(n):
return n > 10
# 반환값 filter 타입
filter(filter_func, num)
# 람다 함수로 필터링
fliter(lambda n: n > 10, num)
# 리스트 변환
list(filter(lambda n: n > 10, num))
728x90
'Python' 카테고리의 다른 글
[파이썬] 알파벳 변환에 쓸 수 있는 ord 함수 와 chr 함수 (0) | 2024.08.21 |
---|---|
[파이썬] 몫과 나머지를 한번에 구하는 divmod 함수 (0) | 2024.08.18 |
[파이썬] := 연산자 (바다코끼리 연산자) (0) | 2024.08.15 |
[파이썬] for문에서 zip()과 enumerate() 한번에 돌리기 (0) | 2024.08.14 |
[파이썬] for문에서 리스트 2개 한번에 돌리기 (0) | 2024.08.14 |