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