在 Python 中根據索引查詢列表元素
考慮兩個列表。第二個列表中的元素是數字,需要將其視為第一個列表元素的索引位置。對於這種情況,我們有以下 Python 程式。
使用 map 和 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']
廣告