Список объектов продолжает меняться с локальной переменной в функции - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть функция, которая создает список списков. Я сохранил этот список в объекте.

All_Valid_Exp=all_valid(print_numb).copy() # all_valid function generates list

Пример списка такой:

[[True, True, False, True, False, True, False], [True, True, True, False, False, True, False], [True, True, False, True, True, False, False], [True, True, True, False, True, False, False], [True, True, True, True, False, False, False]]

Другая функция часто вызывается в al oop. Он использует этот список и присваивает его локальной переменной. Эта переменная изменяется и обрабатывается функцией.

def map_to_valid(Numb, Op):
    Temp=all_valid(print_numb)#all_valid is called everytime this function is
    Exp=[]
    for i in Temp:
        for j in Numb:
            i[i.index(True)]=j
        for k in Op:
            i[i.index(False)]=k
    return Temp

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

def map_to_valid(Numb, Op):
    Temp=All_Valid_Exp.copy()
    Exp=[]
    for i in Temp:
        for j in Numb:
            i[i.index(True)]=j
        for k in Op:
            i[i.index(False)]=k
    return Temp

Я получаю ValueError: True is not in list

Я думаю, что происходит то, что во второй раз вызывается map_to_valid, список остается тем же, что и после первой итерации.

Не знаю Я хочу вызывать функцию несколько раз, потому что эффективность программы очень низкая.

...