Skip to main content
 首页 » 编程设计

python之给定元素的索引,更改嵌套列表内部元素的值

2025年05月04日23zhujiabin

例如:

  • 我有一个列表

    lst = [1, 2, [4, 6, 7, [11, 13] ], [46, 83], 5]

  • 我有一个索引列表,假设元素 13 为 index=[2,3,1](即

    (lst[2][3][1]==13))

  • 我怎样才能将值从 13 更改为 14? 输入而不导入任何模块?

因此更新后的列表将是 [1, 2, [4, 6, 7, [11, 14] ], [46, 83], 5]

但是,解决方案应该是灵活的,因为索引列表会随着列表中每个元素的变化而变化。对于某些项目,其长度为 3(如元素 13),但对于某些元素,其长度约为 1(如元素 2,其索引为 index = [1])。

请您参考如下方法:

您只需要遍历索引列表,直到到达最后一个。为了简化该过程,我们可以将最后一个索引从其余索引中切分出来。

lst = [1, 2, [4, 6, 7, [11, 13] ], [46, 83], 5] 
indices = [2, 3, 1] 
newval = 14 
 
*head, last = indices 
temp = lst 
for i in head: 
    temp = temp[i] 
temp[last] = newval 
print(lst) 

输出

[1, 2, [4, 6, 7, [11, 14]], [46, 83], 5] 

如果您正在运行一些旧版本的 Python,您可能需要将该切片分配更改为这个效率较低的版本:

head, last = indices[:-1], indices[-1]