按列表索引嵌套列表

Fer*_*don 1 python indexing nested-lists multidimensional-array

给定一个嵌套列表,如

>>> m= [[3, 1], [2, 7]]
Run Code Online (Sandbox Code Playgroud)

我可以得到这样的元素

>>> m[1][0]
2
Run Code Online (Sandbox Code Playgroud)

如果索引在列表中给出,即作为 ,我如何获得相同的值[1, 0]

我正在寻找 Q 编程语言提供的带有点的东西,如下面的代码所示

q) m: (3 1; 2 7)
q) m[1][0]
2
q) m . 1 0
2
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 5

作为快速解决方案,您可以像这样滥用 functools.reduce

from functools import reduce
def get_recursive(lst, idx_list):
    return reduce(list.__getitem__, [lst, *idx_list])
Run Code Online (Sandbox Code Playgroud)

>>> y = [[3, 1], [2, 7]]
>>> get_recursive(y, [0, 1])
1
>>> get_recursive(y, [1, 0])
2
Run Code Online (Sandbox Code Playgroud)

有很多极端情况需要处理(另外,您必须确保路径存在或处理出现的任何错误),但这应该让您开始。