Overflowers,
在Python中,我想使用列表作为“索引列表”来从另一个列表中提取元素。例如:
mylist = [[1,2,3],[4,5,6],[7,8,9]]
index = [1,2]
我想使用mylist[1][2]
间接访问index
(即数字6)。我尝试了语法mylist(index)
和mylist[index]
,但都没有按预期工作。
本质上,我希望mylist
充当一个函数,其输入变量是索引列表,其输出值是mylist
的实际成员。
我尝试寻找解决方案一段时间但没有成功。 (即使弄清楚如何简洁地表达这个问题似乎也相当棘手。)
PS:当mylist
是NumPy数组时,我实际上是在尝试这个,但是列表的解决方案应该适用于数组。
答案 0 :(得分:5)
您可以使用
reduce(operator.getitem, index, mylist)
这是一个完整的例子:
import operator
mylist = [[1,2,3],[4,5,6],[7,8,9]]
index = [1,2]
val = reduce(operator.getitem, index, mylist)
print(val)
对于NumPy数组,有一种更简单的方法:
import numpy as np
...
myarr = np.array(mylist)
val = myarr[tuple(index)]
print(val)