У меня вопрос относительно продолжительности значения однажды объявленной переменной. Я встретил функцию ниже:
def func(a, b):
print(a)
c = a[0]
a[0][0] = 5
print(a)
print(c)
b.append(c)
b[1][1] = 8
b.append([6,7])
first = [[3, 4]]
second = [[1,2]]
func(first, second)
print(first[0])
print(second[2])
Меня смущают первые шесть строк функции, когда я вызываю функцию с помощью a = [[3,4]]
, затем c = [3,4]
. Но когда я меняю первое значение первого элемента списка в a
на 5 с помощью a[0][0] = 5
, почему c
берет ссылку из a = [[5,4]]
вместо значения a = [[3,4]]]
, которое уже было присвоено до a[0][0] = 5
?
Дополнительно:
a = True
b = not a
a = False
print(a) # prints False
print(b) # prints False
Почему значение a в этом случае изменяется на False
, а значение b
остается как False
?