Итак, я делал алгоритм Якоби, чтобы приблизить решения системы уравнений, и я столкнулся с парой вещей, которые я не предпринимаю при работе со списком. Допустим, у меня есть эти три функции
def func1 (list):
list_old = list
list[0] = 99
print(list_old)
print(list)
def func2 (list):
list_old = list.copy()
list[0] = 99
print(list_old)
print(list)
def func3 (list):
list_old = list
list = [9,9,9]
print(list_old)
print(list)
list = [0,0,0]
func1(list)
func2(list)
func3(list)
Печать Func1
[99, 0, 0] # List_old
[99, 0, 0] # List
Печать Func2
[0, 0, 0] # List_old
[99, 0, 0] # List
Печать Func3
[0, 0, 0] # List_old
[9, 9, 9] # List
Так мои вопросы: 1) почему List [0] на func1 изменяет list_old? Я думаю, что это что-то с указателями и пространством памяти, но я не уверен, и я не нашел ничего, что объясняет это. 2) Почему в func3 list_old не изменяется? Разве не должно быть так же, как func1?