首页 > 解决方案 > 读取存储在列表中的索引

问题描述

我有一个存储为列表的数据集。我希望能够检索不同的数据片段并更改它们。我需要的片段索引存储在不同的列表中。

例如:

data_list = [[[1,2],[3,4]],[5,6]]
indices = [[0,0,1],[1,0]]

在这种情况下,我可能想检索data_list[0][0][1]并将data_list[1][0]它们更改为 value 6,但我不能简单地这样做data_list[indices[0]] = 6。有没有好的方法来做到这一点?

标签: python-3.xindexingvariable-length

解决方案


您可以尝试遍历所有键/子键,直到获得所需的数据。

您可以做的是将变量设置为data_list对索引的引用并循环遍历索引并移动引用直到它指向最低的嵌套列表。

然后,您可以将最低列表中的值设置为您需要的任何值。

data_list = [[[1,2],[3,4]],[5,6]]
indices = [[0,0,1],[1,0]]

for *path, final in indices:
    val = data_list

    for i in path:
        val = val[i]

    val[final] = 6

print(data_list)

推荐阅读