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

При работе с Python важно понимать, как происходит работа с переменными и объектами. Различия в выходных данных g1 и g2 в данном случае объясняются тем, как происходит присваивание значений переменным array_1 и array_2. В первом случае array_1 привязан к новому объекту [1,2,3,4,5], но так как оператор in вычисляется во время объявления, он все еще ссылается на старый объект [1,2,3,4], который не уничтожается.

Во втором случае, присваивание значений для array_2 обновляет тот же самый старый объект [1,2,3,4] до [1,2,3,4,5]. Следовательно, g2 и array_2 все еще имеют ссылку на один и тот же объект, который теперь был обновлен до [1,2,3,4,5]. Это объясняет различия в поведении переменных и результате их использования.

array_1 = [1, 2, 3, 4]
array_2 = array_1
g1 = [x for x in array_1]
array_1.append(5)
g2 = [x for x in array_2]

Пример кода выше демонстрирует ситуацию, описанную в инструкции. При выполнении данного кода переменные g1 и g2 будут иметь различные значения из-за разницы в присваивании новых значений переменным array_1 и array_2. Понимание таких тонкостей работы с переменными в Python поможет избежать ошибок и неожиданных результатов при программировании.

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

Автор урока

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

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

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

  1. Логический оператор «and» в Python
  2. Замена подстроки
  3. Виртуальное окружение Python
  4. Изменяемые и неизменяемые объекты
  5. Отправка поздравлений по дню рождения
  6. Лямбда-функции в Python
  7. Бесконечные списки в Python
  8. Работа с модулем bisect
  9. Функции с дополнением
  10. Функция reversed() в Python
  11. ChainMap избыточные ключи
  12. Работа с zip-архивами в Python
  13. Numpy: использование Ellipsis
  14. Python 3.12: Псевдонимы типов
  15. Удаление файлов и папок в Python
  16. Удаление URL-адресов в Python
  17. Преобразование списка в словарь через генератор
  18. Перегрузка операторов в Python
  19. Вывод букв строки в Python
  20. Установка random seed в Python
  21. Изменение списка срезами
  22. Измерение времени выполнения кода
  23. Установка библиотек в Python
  24. Получение имени функции с помощью inspect
  25. Использование super() в Python
  26. Оператор in для Python
  27. Функция product() в Python
  28. Использование обратной косой черты в f-строках
  29. Активация Matplotlib в Jupyter
  30. Модуль future Python
  31. Функция enumerate() — Python
  32. Безопасный доступ к значениям словаря
  33. 9 уловок для чистого кода
  34. Создание списка дат
  35. Цикл for с enumerate() в Python
  36. Определение индекса элемента списка
  37. Удаление falsy-значений из списка с помощью filter
  38. Декоратор Ajax required
  39. Генерация ключей RSA
  40. Перегрузка операторов в Python
  41. Методы обработки строк в Python
  42. Форматирование строк в Python
  43. Удаление специальных символов с помощью re.sub
  44. Подсчет количества элементов в списке
  45. Python-dateutil — работа с датами
  46. Блок try…finally в Python
  47. Проблемы с именами переменных
  48. Управление контекстом с помощью декоратора contextmanager

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