Работа
с частью списка
79
Вывод в точке
показывает, что элемент
'cannoli'
находится в списке
my_foods
,
а элемент
'ice
cream'
в этот список не входит. В точке
видно, что
'ice
cream'
вхо-
дит в список
friend_foods
, а элемент
'cannoli'
в этот список не входит. Если бы эти
два списка просто совпадали, то их содержимое уже не различалось бы. Например,
вот что происходит при попытке копирования списка без использования сегмента:
my_foods = ['pizza', 'falafel', 'carrot cake']
# Не работает:
❶
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
Вместо того чтобы сохранять копию
my_foods
в
friend_foods
в точке
, мы зада-
ем
friend_foods
равным
my_foods
. Этот синтаксис в действительности сообщает
Python, что новая переменная
friend_foods
должна быть связана со списком, уже
хранящимся в
my_foods
, поэтому теперь обе переменные связаны с одним списком.
В результате при добавлении элемента
'cannoli'
в
my_foods
этот элемент также
появляется в
friend_foods
. Аналогичным образом элемент
'ice
cream'
появляется
в обоих списках, хотя на первый взгляд он был добавлен только в
friend_foods
.
Вывод показывает, что оба списка содержат одинаковые элементы, а это совсем не
то, что требовалось:
My favorite foods are:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
Достарыңызбен бөлісу: