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)
作为快速解决方案,您可以像这样滥用 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)
有很多极端情况需要处理(另外,您必须确保路径存在或处理出现的任何错误),但这应该让您开始。