Работа
с частью списка
75
Чтобы скопировать список, создайте срез, включающий весь исходный список
без указания первого и второго индекса (
[:]
). Эта конструкция создает срез,
который начинается с первого элемента и завершается последним; в результате
создается копия всего списка.
Представьте, что вы создали список своих любимых блюд и теперь хотите создать
отдельный список блюд, которые нравятся вашему другу. Пока вашему другу
нравятся все блюда из нашего списка, поэтому вы можете создать другой список
простым копированием нашего:
foods.py
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
В точке
создается список блюд с именем
my_foods
. В точке
создается дру-
гой список с именем
friend_foods
. Чтобы создать копию
my_foods
, программа
запрашивает срез
my_foods
без указания индексов, и мы сохраняем копию
в
friend_foods
.
При выводе обоих списков становится видно, что они содержат одинаковые данные:
My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']
Чтобы доказать, что речь в действительности идет о двух разных списках, добавим
новое блюдо в каждый список:
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
,
как было сделано в предыдущем примере. Затем в
каждый список добавляется
новый элемент:
'cannoli'
в
my_foods
, и
'ice cream'
в
friend_foods
. После этого
вывод двух списков наглядно показывает, что каждое блюдо находится в соответ-
ствующем списке.