Skip to main content
 首页 » 编程设计

python之通过python中的索引元组访问多维列表值

2025年05月04日42JeffreyZhao

我有一个复杂的多维可说对象(例如,列表)。我想编写函数来访问由索引元组表示的元素的值。维数本身是可变的。如果元素不存在,它还应该返回 None:

l = [[[1, 2], 
      [3, 4]], 
     [[5, 6], 
      [7, 8]]] 
access(l, (0, 0, 0)) # prints 1 
access(l, (0, 1, 1)) # prints 4 
access(l, (1, 1)) # prints [7, 8] 
access(l, (0, 1, 2)) # prints None 
access(l, (0, 0, 0, 0)) # prints None 

我如何实现这一目标?

请您参考如下方法:

雅罗斯拉夫回答的另一种方法,在索引列表之前请求宽恕而不是许可:

def access(obj, indexes): 
    try: 
        return reduce(list.__getitem__, indexes, obj) 
    except Exception: 
        return None 

它不是万无一失的;它假设 access 将按预期使用,如果有人决定尝试 access(1, 1)<,您不介意返回 None/,例如。