티스토리 뷰
.index() 란?
리스트 매소드 중에서 index()는 리스트 중에서 특정한 원소가 몇 번째에 처음으로 등장했는지를 알려주는데, 인덱스를 알려주기 때문에 index 라는 이름으로 되어 있다. 그런데 만약에 두 번 이상 원소가 중복되어 존재하는 경우에는 맨 처음 등장한 순간의 인덱스를 출력해준다는 점을 기억하자.
예제: 인덱스 찾기 (list.iindex)
아래와 같은 리스트를 정의했을 때,
>>> a = [123, 421, 212, 11, 24, 102, 29, 92, 10]
421이 몇 번째에 인덱스인지 확인해보자.
>>> a.index(421) 1
파이썬은 인덱싱이 0부터 시작이므로, 2번째에 있으므로, 1이 된다.
그렇다면, 원소들이 문자열의 경우에는 어떻게 되는지 살펴보자.
>>> b = ['hi', 'hello', 'bye', 'hello', 'hi']
여기서는 앞의 숫자일 때와 마찬가지로 index() 매소드를 사용하면 되고, 'hello'를 보면, 2번째와 4번째에 두 번 등장한다. 하지만, 아래의 결과를 보면, 두 번째의 인덱스만 보여준다는 것을 알 수 있다.
예제: 중복되는 원소들의 인덱스 모두 찾기 (numpy.where)
만약에 여러 번 등장하는 원소의 경우 모든 인덱스를 가져오고 싶으면, 여러 가지 방법이 있겠지만, numpy 패키지를 사용하는 방법을 소개하겠다.
우선 위에서 리스트로 정의한 b를 array로 변환 시켜 준다. numpy 패키지를 import로 불러 오고, .array() 매소드를 사용해서 기존에 리스트로 정의된 것을 array로 바꿔 준다.
>>> import numpy >>> b = numpy.array(b)
그런 후, numpy.where() 매소드를 사용해서 특정한 값과 동일한 원소를 찾아낸 후, 이것의 인덱스를 출력하도록 하였다.
>>> numpy.where(b == 'hello')[0] array([1, 3])
여기서 보면, 0번째 값만 가져오게 했는데, .where() 매소드는 2개의 리턴값을 주는데, 여기서 첫 번째가 해당 인덱스 정보를 주기 때문에 0번째만 가져왔다.
출처
https://blog.naver.com/sw4r/221976911807
'Programming > Python' 카테고리의 다른 글
matplotlib 색상표(color chart) 코드 (0) | 2022.04.23 |
---|---|
[Python] Matplotlib 색상 지정하기 (0) | 2020.12.01 |
[Python] 특정 문자(키워드) 주변 앞뒤 단어 출력하기 (0) | 2020.10.27 |