Если с инглишом проблем нету, то объяснение можно почитать
тут Если в функции создать переменную с таким же именем, то она будет локальной, если обращаться с глобальной переменной (без писания global в функции), то она будет изменяться.
Можете в функции создать
, увидите, что список не поменялся, т.к. просто создается локальная переменная с тем же именем, а если обращаться к списку, то он изменится, т.к. виден во всех объектах ( в данном случае в функции).
Почитайте еще раз про области видимости.
Надеюсь понятно.