Работа с последовательностями

Администратор
Андрей Столяров
Медаль
Сообщений: 210
Санкт-Петербург
1 день назад
Иллюстрация того, что последовательности ( в том числе списки) представляют собой динамические типы данных, и присвоение переменной выполняется как присвоение адреса области памяти. В результате присвоения получаем две переменных указателя на один и тот же набор данных. Но у динамических объектов есть специальный метод .copy(), который позволяет создать копию объекта вместо создания копии указателя.

Код PYTHON:
  1. A = [x for x in range(3, 15) ]#Генерация списка A= [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
  2. print("Исходный список")
  3. print("A=",A)
  4. B=A # Создаём копию ссылки на список A
  5. C=A.copy() # Создаём копию списка A
  6. print("Добавляем в список B элемент 15")
  7. B.append(15)
  8. print("Добавляем в список С элемент 35")
  9. C.append(35)
  10. print("A=",A)
  11. print("B=",B)
  12. print("C=",C)
  13. print("В итоге число, добавленное в список B, мы видим в составе списка A, поскольку переменные A и B указывают на один и тот же список, а число, добавленное в список C, в списке A не появилось, поскольку это разные списки.")

Вывод программы

Исходный список
A= [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Добавляем в список B элемент 15
Добавляем в список С элемент 35
A= [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
B= [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
C= [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 35]
В итоге число 15, добавленное в список B, мы видим в составе списка A,поскольку переменные A и B указывают на один и тот же список, а число 35, добавленное в список C, в списке A не появилось,поскольку это разные списки.
Редактировалось: 9 раз (Последний: 24 августа 2015 в 14:59)
Администратор
Андрей Столяров
Медаль
Сообщений: 210
Санкт-Петербург
1 день назад
Интересный при этом факт: список - объект изменяемый, а кортеж - не изменяемый.
|
Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.