读取列表中存储的索引

时间:2019-03-05 17:15:39

标签: python-3.x indexing variable-length

我有一个存储为列表的数据集。我希望能够检索不同的数据并进行更改。我需要的件索引存储在其他列表中。

例如:

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

在这种情况下,我可能想检索data_list[0][0][1]data_list[1][0]并将它们更改为值6,但是我不能简单地做data_list[indices[0]] = 6。有什么好方法吗?

1 个答案:

答案 0 :(得分:3)

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

您可以做的是将变量设置为对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)