Skip to main content
 首页 » 编程设计

python之如何以编程方式在给定索引的嵌套列表中设置元素

2025年05月04日8exmyth

我想在给定索引列表的任意嵌套列表中设置一个元素。例如,假设我们有列表:

a = [[1, 2], [3, 4, 5]] 

我们可以这样设置一个元素:

a[1][2] = 9 

修改后的列表a是:

[[1, 2], [3, 4, 9]] 

我想根据索引列表设置此元素:[1, 2]。

谢谢!

为清楚起见进行编辑:索引列表的长度可能会有所不同。例如,给定索引列表:idx = [1, 2],按照建议,我们可以这样做:

a[idx[0]][idx[1]] = 9 

然而,在更一般的情况下,idx 可以是任意长度。我想要这样的东西:

a[idx[i_1]][idx[i_2]][...][idx[i_n]] = 9 

请您参考如下方法:

我找到了一个解决方案:

def set_in_list(a, idx, val): 
 
    """ 
        Set an element to value `val` in a nested list `a`. The position 
        of the element to set is given by the list `idx`. 
 
        Example: 
 
        `a` = [[1, 2], [3, [4, 5], 6], [7]] 
        `idx` = [1,1,0] 
        `val` = 9 
 
        ==> `a` = [[1, 2], [3, [9, 5], 6], [7]] 
 
    """ 
 
    for i in range(len(idx) - 1): 
 
        a = a[idx[i]] 
 
    a[idx[-1]] = val