Курс 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
  2. Сравнение строк в Python
  3. Метод get() для словарей
  4. Нан-рефлексивность в Python
  5. Pillow: работа с изображениями
  6. Замена текста с re.sub()
  7. Вычисление логарифмов в Python
  8. Работа с OpenCV
  9. Работа с многоуровневыми словарями в Python
  10. Хеширование паролей с солью
  11. Нахождение самого длинного слова в списке с помощью max
  12. Именованные срезы в Python
  13. Строки в Python: апострофы и кавычки
  14. Создание коллекций из выражения-генератора
  15. Функции в Python
  16. Лямбда-функции для min/max
  17. Методы classmethod и staticmethod
  18. Принцип одной функции
  19. Подсчет количества элементов в списке
  20. Оператор «is not» в Python
  21. Работа с timedelta
  22. Замена символов в строке
  23. Цикл while в Python
  24. Безопасный доступ к значениям словаря
  25. Работа с аргументами командной строки в Python
  26. Defaultdict в Python
  27. Функция reversed() в Python
  28. lru_cache оптимизация функций
  29. Создание namedtuple из словаря
  30. Создание и использование модулей в Python
  31. Работа со списками
  32. Работа со строками в Python
  33. Сортировка элементов в Python
  34. Работа с итераторами через срезы
  35. Преобразование регистра символов
  36. Создание класса очереди
  37. Локальные переменные.
  38. Извлечение данных из JSON
  39. Модуль Operator в Python
  40. Defaultdict в Python
  41. Python: возвращение нескольких значений
  42. Функция zip() в Python
  43. Цепные операции в Python
  44. Инициализация структур данных
  45. Основные функции и модули Python
  46. Срезы в Numpy
  47. Python: изменяемые и неизменяемые коллекции

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