Это очень простая проблема, но я понятия не имею, почему это делает python. Для цикла ниже if head != None...
создает локальную переменную, так что head += 1
не изменяет головку в for head in myHeap.array
. добавив печать (голова) сразу после того, как голова + = 1 производит результат, который я хочу, но голова вне оператора if остается неизменной.Область переменной Python для цикла
for head in myHeap.array:
if head != None and count % int(grow) == 0:
head += 1
поэтому вход myHeap.array = [2, 2, 2, 1] выводит один и тот же список в конце итерации, когда [3, 3, 3, 2], как ожидается. Я также проверил, что условие выполнено для оператора if, и интерпретатор использует строку head += 1