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

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

Например, если у нас есть список чисел и мы хотим изменить одно из значений, мы можем обратиться к этому значению по его индексу и присвоить новое значение. Однако, если мы не будем внимательны, мы можем случайно изменить другой список, который ссылается на тот же объект в памяти.


numbers = [1, 2, 3, 4]
new_numbers = numbers
new_numbers[0] = 5
print(numbers)  # Выведет [5, 2, 3, 4]

В приведенном примере мы видим, что изменение значения в новом списке также приводит к изменению значения в исходном списке. Это происходит потому, что оба списка ссылаются на один и тот же изменяемый объект в памяти.

Для избежания подобных ошибок важно использовать методы копирования списков, такие как метод copy() или срезы. Таким образом, мы можем создать копию списка, а не просто ссылку на существующий список, и избежать неожиданных изменений.

Пример создания копии списка:


numbers = [1, 2, 3, 4]
new_numbers = numbers.copy()
new_numbers[0] = 5
print(numbers)  # Выведет [1, 2, 3, 4]
Твои коллеги будут рады, поделись в

Автор урока

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

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

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

  1. Python 3.12: переиспользование кавычек
  2. Модуль pprint
  3. Встроенные функции Python
  4. Шаблоны и наследование в Flask
  5. Работа с itertools
  6. Создание списков в Python
  7. Сортировка и разворот списка
  8. Генераторы в Python
  9. Условные выражения в Python
  10. Создание тестовых данных с Faker
  11. Разделение строки с помощью re.split()
  12. Присоединение элементов коллекции
  13. Освоение Python
  14. Метод is_absolute() для PurePath
  15. Метод rxor для операции побитового исключающего «или»
  16. Запрос DELETE с библиотекой requests
  17. Присвоение и ссылки
  18. Обмен данными с asyncio.Queue
  19. Контроль точности вывода чисел
  20. Объединение словарей в Python 3.5+
  21. Лимиты на ресурсы Python
  22. Переопределение метода __lshift__
  23. Создание и использование модулей в Python
  24. Переопределение метода xor в Python
  25. Работа с множествами в Python
  26. Работа с часовыми поясами в Python.
  27. Получение значений из словарей
  28. Нахождение максимального значения и его индекса в списке
  29. Комментарии в Python
  30. Mad Libs Generator
  31. Преобразование в float
  32. Работа с географическими данными.
  33. PrettyTable: создание таблицы
  34. Работа с NumPy.linalg
  35. Операция += для списков
  36. Создание обратного итератора
  37. Метод rsub для пользовательских чисел
  38. Объединение, распаковка и деструктуризация
  39. Генератор бросков кубиков
  40. Использование подчеркивания в REPL
  41. Оператор объединения словарей
  42. Генераторные функции в Python
  43. Метод Enumerate() для списков
  44. Оптимизация методов в Python 3.7
  45. Удаление элементов из списка в Python.
  46. Использование defaultdict в Python

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