- все дело в области видимости, концепция изменчивости применима к списку, но не для ссылки на переменную.
Переменные a, b являются локальными переменными, поэтому область действия переменной будет всегда функционируйте сферу.
Выполненные вами операции:
a [:] = c [: 2]
b [:] = c [2:]
Примечание: a и b теперь являются списком, поэтому вы получите следующие выходные данные в функции:
[69,69], [69,69]
но если вы используете оператор +, который используется для добавления операций, то выход будет таким:
[69,69,69,69]
Теперь, что бы я ни говорил вам, это будет локальный scope, если вы хотите, чтобы список был изменяемым во всей программе, вы должны указать область списка как глобальную внутреннюю функцию, и в этой переменной вы можете вносить изменения. в этом случае вам также не нужно передавать какие-либо аргументы:
def mutate_list ():
global l # telling python to use this global variable in a local function
c = [69] * 4
l=c # assigning new values to actual list i.e l
Теперь перед выводом будет [1,2,3,4]
и после будет [69,69,69,69]