Закрытия Python с поздним связыванием . Это означает, что значения переменных, используемых в замыканиях, ищутся во время вызова функции.
Чтобы избежать эффекта позднего связывания, вы можете использовать лямбду с аргументом по умолчанию:
index = 1
test = lambda t, index=index: t[index]+1 # binds index at definition time
index = 0
print(test([5, 0])) # 1