Помогите понять почему так происходит
Я только начинаю изучать программирование, но всегда спотыкаюсь на этой проблеме в Python. Почему в этом случае список присваивается list[:] = new_list:
names=['name1','name2','name3','name4','name5','name6']
def print_name (list):
for name in list:
print(name)
def add_lastname (list):
new_list = []
while list:
name = 'Last_name '+ list.pop(0)
new_list.append(name)
list[:] = new_list
add_lastname(names)
print_name(names)
А вот в этом случае нет list = new_list!
names=['name1','name2','name3','name4','name5','name6']
def print_name (list):
for name in list:
print(name)
def add_lastname (list):
new_list = []
while list:
name = 'Last_name '+ list.pop(0)
new_list.append(name)
list = new_list
add_lastname(names)
print_name(names)
list[:] = new_list - так я функцией изменяю изначальный список list = new_list - а так не изменяю
Я же обращаюсь к списку и в том и вдругом случае, зачем ему эти [:] - ведь это же создание копии списка или я не прав?