Читать индексы, хранящиеся в списке - PullRequest
2 голосов
/ 05 марта 2019

У меня есть набор данных, который хранится в виде списка. Я хочу иметь возможность извлекать разные части данных и изменять их. Нужные мне индексы хранятся в другом списке.

Например:

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 Ответ

3 голосов
/ 05 марта 2019

Вы можете попытаться перебрать все клавиши / подключи, пока не получите нужные данные.

Что вы можете сделать, это установить переменную в ссылку на 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)
...