Python: почему мой список меняется, когда я на самом деле не изменяю его?

Новичок с вопросом, поэтому будьте нежны:

list = [1, 2, 3, 4, 5]
list2 = list

def fxn(list,list2):
    for number in list:
        print(number)
        print(list)
        list2.remove(number)
        print("after remove list is  ", list, " and list 2 is  ", list2)
    return list, list2

list, list2 = fxn(list, list2)
print("after fxn list is  ", list)
print("after fxn list2 is  ", list2)

Это приводит к:

1
[1, 2, 3, 4, 5]
after remove list is   [2, 3, 4, 5]  and list 2 is   [2, 3, 4, 5]
3
[2, 3, 4, 5]
after remove list is   [2, 4, 5]  and list 2 is   [2, 4, 5]
5
[2, 4, 5]
after remove list is   [2, 4]  and list 2 is   [2, 4]
after fxn list is   [2, 4]
after fxn list2 is   [2, 4]

Я не понимаю, почему список меняется, когда я делаю толькоlist2.remove()неlist.remove(), Я даже не уверен, какие поисковые термины использовать, чтобы понять это.

Ответы на вопрос(2)

Ваш ответ на вопрос