考虑两个列表。第二个列表中的元素是数字,需要将其视为第一个列表中元素的索引位置。对于这种情况,我们有以下python程序。
有映射和getitem
我们可以使用getitem魔术方法来访问列表项。我们可以将其与map函数一起使用,以便我们从第一个列表中获得结果,该结果将第二个列表中的元素作为其指标。
示例listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]
print("给定列表A:",listA)
print("给定列表B:",listB)
res=list(map(listA.__getitem__, listB))
print("Result :",res)
输出结果
运行上面的代码给我们以下结果-给定列表A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
给定列表B: [0, 1, 3]
Result : ['Mon', 'Tue', 'Thu']
带有itemgetter
运算符模块提供了可用于此目的的itemgetter方法。在下面的程序中,我们将第二个列表扩展为索引,并应用itemgetter函数从列表中获取相应的元素。
示例from operator import itemgetter
listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]
print("给定列表A:",listA)
print("给定列表B:",listB)
res=list((itemgetter(*listB)(listA)))
print("Result :",res)
输出结果
运行上面的代码给我们以下结果-给定列表A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
给定列表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("给定列表A:",listA)
print("给定列表B:",listB)
res=list(np.array(listA)[listB])
print("Result :",res)
输出结果