Часто возникает такая проблема, что в задаче нужно записать промежуточные результат, но изначальный список изменять нельзя. В такой момент мы вспоминаем о сегодняшней теме.
Списки в Python представляют изменяемый тип данных( т.е элементы списка можно изменять после создания самого списка, а вот строка — неизменяемый тип!)
смотри пример:
cities1=[«Moscow», «Sochi», «Vologda»]
cities2=cities1 #список cities2 и список cities1 указывают на один и тот же объект
cities2.append(«Kazan») #добавляем еще один элемент в список cities2
print(cities1) #[“Moscow”, “Sochi”, “Vologda”, ”Kazan”]
print(cities2) #[“Moscow”, “Sochi”, “Vologda”, “Kazan”]
◾️LIST.COPY() :
Чтобы такого не случилось, можно воспользоваться встроенной функцией list.copy() —
тогда мы получим 2 списка, которые ссылаются на разные списки.
Посмотрим как работает:
cities1=[«Moscow», «Sochi», «Vologda»]
cities2=cities1.copy() #список cities2 и список cities1 указывают на один и тот же объект
cities2.append(«Kazan») #добавляем еще один элемент в список cities2
print(cities1) #[“Moscow”, “Sochi”, “Vologda”]
print(cities2) #[“Moscow”, “Sochi”, “Vologda”, “Kazan”]
все супер! Первый список остался неизмененным!
◾️Копирование частей списка
Иногда возникает ситуация, когда весь список нам копировать не требуется, достаточно только какой-то определенной части:
1. list[:end] — копируем список до end(не включая!)
2. list[start:end] — копируем список с start до end(не включая!)
3. list[start🔚step] -копируем список с start до end(не включая!) с шагом step
Пример:
cities=[«Moscow», «Sochi», «Vologda», «Kazan» ]
new_cities=cities[:1]
print(new_cities) #результат: [«Moscow»]
new_cities=cities[1:3] print(new_cities) #результат: [«Sochi», «Vologda»]
new_cities=cities[1:4:2] print(new_cities) #результат: [«Sochi», «Kazan»]
Авторизуйтесь, чтобы оставить комментарий.