0

Есть код. По логике должен работать, но нет. При добавлении элемента в цикле с помощью метода append() он переписывает все элементы, а надо сохранить результаты каждой итерации. Пробовал и insert(), и саму функцию в цикл ставил, не помогает. Пример кода:

def time(lists, var):
    lists[0] = lists[0]+var
    return lists
time_all  = []
lst = [0,1,2,3,4]
for i in range(5):
    time_all.append(time(lst, i))
    lst = time_all[i]
print(time_all)

выдает это:

[[10, 1, 2, 3, 4], [10, 1, 2, 3, 4], [10, 1, 2, 3, 4], [10, 1, 2, 3, 4], [10, 1, 2, 3, 4]]

а надо :

[[ 0, 1, 2, 3, 4], [1, 1, 2, 3, 4], [3, 1, 2, 3, 4], [6, 1, 2, 3, 4], [10, 1, 2, 3, 4]]

P.S. Надо именно списками. Надо менять в цикле один элемент, но потом он проходит ряд проверок и могут меняться другие элементы.


Добавить комментарий