gpt4 book ai didi

python - 根据索引列表更改列表元素

转载 作者:行者123 更新时间:2023-11-28 21:44:16 24 4
gpt4 key购买 nike

索引列表(称为“indlst”)如何对应于元素 [1][0] 和 [3][1],例如 [[1,0], [3,1,2]] [2] 给定列表(称为“lst”),用于在原始列表中更改它们各自的元素?另请注意,索引指的是嵌套到任意深度的元素。例如,给定

indlst = [[1,0], [3,1,2]]
lst = ["a", ["b","c"], "d", ["e", ["f", "g", "h"]]]
required_output = [lst[1][0],lst[3][1][2]]

输出应对应于 ["b","h"]。我知道我可以通过以下代码片段(请参阅 Use list of nested indices to access list element)做到这一点:

for i in indlst:
temp = lst
for j in i:
temp = temp[j]
print(temp)
b
h

但是,我需要更改原始列表中的这些元素。例如,将每个访问的元素更改为“CHANGED”:

changed_lst = ["a", ["CHANGED","c"], "d", ["e", ["f", "g", "CHANGED"]]]

最佳答案

只需检查每个序列中最内层的索引 - 当您到达它时,更改值,而不是深入序列并仅检索元素:

for indices in indlst:
base = lst
for i, index in enumerate(indices):
if i == len(indices) - 1:
base[index] = "CHANGED"
break
base = base[index]

这种替代形式可能更优雅,尽管它只是一回事:

for indices in indlst:
base = lst
for index in indices[:-1]:
base = base[index]
base[indices[-1]] = "CHANGED"

关于python - 根据索引列表更改列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40954458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com