给定一个嵌套列表
>>> m= [[3, 1], [2, 7]]
我可以得到这样一个元素
>>> m[1][0]
2
如果索引在列表中给出,我如何获得相同的值,即 [1, 0]?
我正在寻找 Q 编程语言提供的 dot 的东西就像下面的代码
q) m: (3 1; 2 7)
q) m[1][0]
2
q) m . 1 0
2
请您参考如下方法:
作为快速解决方案,您可以像这样滥用 functools.reduce:
from functools import reduce
def get_recursive(lst, idx_list):
return reduce(list.__getitem__, [lst, *idx_list])
>>> y = [[3, 1], [2, 7]]
>>> get_recursive(y, [0, 1])
1
>>> get_recursive(y, [1, 0])
2
有很多极端情况需要处理(此外,您必须确保路径存在,否则会处理出现的任何错误),但这应该可以帮助您入门。
