Это потому, что вы изменяете переменную локали. Первое значение никогда не меняется.
Рассмотрим следующий пример
a = 5
def mut(arg):
arg = 6
mut(a)
print(a) // 5
Это потому, что arg - это локальная копия переданного аргумента, он живет только в этой области функций.
И вот как мы можем это сделать,
a = 5
def mut(arg):
arg = 6
return arg
a = mut(a)
print(a) // 6
Возвращая новое вычисленное значение и присваивая его нашей исходной переменной.