Курс Python → Работа с изменяемыми коллекциями

При работе с изменяемыми коллекциями, такими как списки в Python, необходимо помнить о том, что изменения, внесенные в один объект списка, будут отражены на всех ссылках на этот объект. Это означает, что если у вас есть несколько переменных, указывающих на один и тот же список, и вы изменяете его содержимое через одну из переменных, эти изменения будут видны и через другие переменные.

Например, если у нас есть список lst1 = [1, 2, 3] и мы присваиваем его другой переменной lst2 = lst1, то любые изменения, внесенные в lst2, также будут отражены в lst1. Это может привести к ошибкам, если мы не учтем этого поведения.

Для избежания подобных проблем рекомендуется создавать копии изменяемых коллекций, если вам необходимо работать с независимыми объектами. Для этого можно использовать метод copy() или срезы списка, например lst2 = lst1.copy() или lst2 = lst1[:].

# Пример кода
lst1 = [1, 2, 3]
lst2 = lst1.copy()

lst2.append(4)

print(lst1)  # Вывод: [1, 2, 3]
print(lst2)  # Вывод: [1, 2, 3, 4]

Таким образом, работа с изменяемыми коллекциями в Python требует внимательного подхода и понимания особенностей их работы, чтобы избежать нежелательных побочных эффектов и ошибок в коде.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Очистка данных в Python
  2. Тип данных TypeVarTuple
  3. Стать Python-разработчиком
  4. Удаление элементов во время итерации
  5. Оператор объединения словарей
  6. Подчеркивание в REPL
  7. Создание и использование ChainMap
  8. Структура данных deque в Python
  9. Декораторы в Python
  10. Округление дробей в Python
  11. Печать календаря
  12. Оптимизация памяти с __slots__
  13. Эффективная конкатенация строк в Python
  14. Создание матрицы в Python
  15. Подсчет элементов с помощью Counter
  16. Сохранение Unicode в JSON
  17. Использование модуля __future__
  18. Лямбда-функции в Python
  19. Игра Виселица на Python
  20. Быстрый поиск кода
  21. Явный импорт переменных
  22. Переопределение метода divmod
  23. Избегание циклических зависимостей классов в Python
  24. Многоточие в Python
  25. Объединение списков в Python.
  26. Динамические маршруты во Flask
  27. Библиотека schedule: планировщик задач
  28. Инверсия списков и строк в Python
  29. Python reversed() vs срез[::-1]
  30. Обработка ошибок в Python
  31. Запрос DELETE с библиотекой requests
  32. 9 уловок для чистого кода
  33. Оператор == в Python
  34. Транспонирование матрицы
  35. Идентификатор объекта в Python
  36. Модуль subprocess: запуск внешних команд
  37. Названия переменных
  38. Использование обратной косой черты в f-строках
  39. Переменные класса и экземпляра
  40. Метод __iand__ для пользовательских классов
  41. Пространство имен в Python
  42. Тестирование с responses
  43. Сортировка списка по индексам
  44. Python и Монти Пайтон
  45. Генерация UUID в Python
  46. Создание виртуальной среды
  47. Измерение времени выполнения кода

Marketello читают маркетологи из крутых компаний