두 개 이상 원소 인덱스 찾기( python)
조회수 1132회
예를 들어 리스트 l=[1,3,2,4]에서 2,3이 있는 index를 찾고 싶어서 l.index([2,3])으로 했더니 에러가 납니다. 어떻게 식을 구성해야 될까요 이 경우에 답은 [2,1]가 되겠지요
1 답변
-
이 답변의 이전 질문에 의한 답변입니다. 위 질문에 대한 답변은 아래에 있습니다.
인덱스의 배열이 주어졌을 때, 배열의 원소들의 배열을 구하는 것입니다.
먼저 대괄호
[
,]
로 하는 방법은 없습니다. 그래서 다른 방법을 써야 하는데, 2가지 방법을 알려드리겠습니다. 그런데, 그 전에 파이썬의 인덱스는 0-based 임을 알아두셔야 합니다. 이는 첫번째 원소가0
번째 원소라는 뜻입니다.예)
>>> l = [1, 3, 2, 4] >>> l[0] 1
1. map 함수 사용
>>> list(map(lambda x: l[x], [1, 2])) [3, 2]
map은 파이썬의 내장 함수로 오른쪽의 배열을 돌면서 함수를 적용하는 역할을 합니다.
2. 배열 생성
>>> [l[x] for x in [1, 2]] [3, 2]
이 방법은 한줄 for문인데, 짧게 코드를 작성할 수 있어서 많이 쓰입니다.
질문에 대한 답변
먼저
index
메소드는 정수를 파라미터로 받는 메소드입니다. 그래서 위와 비슷하게 다음과 같이 할 수 있습니다.1. map 함수 사용
>>> list(map(l.index, [2, 3])) [2, 1]
2. 배열 생성
>>> [l.index(x) for x in [2, 3]] [2, 1]
크게 두가지 방법 중 하나를 쓰시면 될 것 같습니다.
- 제가 질문을 잘못 올렸습니다. 말씀해주신 것과 반대로 index를 찾고 싶었습니다. 혹시 이 질문에 대해 답해주실 수 있나요? magic0111 2020.3.26 14:11
- 수정했습니다 buttercrab 2020.3.27 13:15
댓글 입력