2

各位溢出者,

在 Python 中,我想使用一个列表作为“索引列表”来从另一个列表中提取元素。例子:

mylist = [[1,2,3],[4,5,6],[7,8,9]]
index = [1,2]

我想mylist[1][2]间接访问(即数字 6),使用index. 我尝试了语法mylist(index)mylist[index]但都没有按预期工作。

本质上,我想mylist充当一个函数,其输入变量是索引列表,其输出值是mylist.

我尝试了一段时间寻找解决方案,但没有成功。(即使弄清楚如何简洁地表达这个问题似乎也相当棘手。)

PS:我实际上是在尝试mylist使用 NumPy 数组时,但列表的解决方案应该适用于数组。

4

1 回答 1

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)
于 2013-09-08T16:37:50.097 回答