Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 인덱스로 목록의 요소 찾기

<시간/>

두 가지 목록을 고려하십시오. 두 번째 목록의 요소는 첫 번째 목록의 요소에 대한 인덱스 위치로 간주되어야 하는 숫자입니다. 이 시나리오의 경우 아래와 같은 파이썬 프로그램이 있습니다.

지도 및 getitem 포함

getitem 매직 메서드를 사용하여 목록 항목에 액세스할 수 있습니다. map 함수와 함께 사용할 수 있으므로 두 번째 목록의 요소를 인덱스로 사용하는 첫 번째 목록의 결과를 얻을 수 있습니다.

listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]

print("Given list A:",listA)
print("Given list B:",listB)


res=list(map(listA.__getitem__, listB))

print("Result :",res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Given list B: [0, 1, 3]
Result : ['Mon', 'Tue', 'Thu']

itemgetter 사용

operator 모듈은 이 용도로 사용할 수 있는 itemgetter 메서드를 제공합니다. 아래 프로그램에서 두 번째 목록을 인덱스로 확장하고 itemgetter 함수를 적용하여 목록에서 해당 요소를 가져옵니다.

from operator import itemgetter

listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]

print("Given list A:",listA)
print("Given list B:",listB)


res=list((itemgetter(*listB)(listA)))

print("Result :",res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Given list B: [0, 1, 3]
Result : ['Mon', 'Tue', 'Thu']

numpy 사용

numpy 라이브러리는 두 개의 목록을 입력 매개변수로 사용하는 배열을 생성하여 이를 달성할 수 있습니다. 결과는 다시 목록으로 변환됩니다.

import numpy as np

listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]

print("Given list A:",listA)
print("Given list B:",listB)


res=list(np.array(listA)[listB])

print("Result :",res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Given list B: [0, 1, 3]
Result : ['Mon', 'Tue', 'Thu']