Сравните, если две переменные ссылаются на один и тот же объект в python

Как проверить, ссылаются ли две переменные на один и тот же объект?

x = ['a', 'b', 'c'] y = x # x and y reference the same object z = ['a', 'b', 'c'] # x and z reference different objects 

4 Solutions collect form web for “Сравните, если две переменные ссылаются на один и тот же объект в python”

То, что is для: x is y

y is x будет True, y is z будет False .

Вы также можете использовать id (), чтобы проверить, к какому уникальному объекту относится имя переменной.

 In [1]: x1, x2 = 'foo', 'foo' In [2]: x1 == x2 Out[2]: True In [3]: x1 is x2 Out[3]: True In [4]: id(x1), id(x2) Out[4]: (4367888016, 4367888016) In [5]: x2 = x2 + 'bar' In [6]: x1 is x2 Out[6]: False In [7]: id(x1), id(x2) Out[7]: (4367888016, 4369529616) 

Хотя два правильных решения x is z и id(x) == id(z) я хочу указать деталь реализации python. Python хранит целые числа в качестве объектов, а в качестве оптимизации он генерирует кучу небольших целых чисел в начале (от -5 до 256) и указывает, что каждая переменная содержит целое число с небольшим значением для этих preinitialized объектов. Больше информации

Это означает, что для целочисленных объектов, инициализированных на одни и те же маленькие числа (от -5 до 256), проверка того, что оба объекта одинаковы, вернет true (ON C-Pyhon, насколько мне известно, это деталь реализации), тогда как для более крупных числа, это возвращает только true, если один объект инициализирован другим.

 > i = 13 > j = 13 > i is j True > a = 280 > b = 280 > a is b False > a = b > a 280 > a is b True 
  • python получение Символ не найден: __PyCodecInfo_GetIncrementalDecoder
  • перестановки двух списков в python
  • Определить параметр запроса в app.yaml в приложении Google Appengine
  • скрипт для открытия веб-браузера и ввода данных
  • Разделить строку на каждый n-й символ?
  • найти номер индекса в верхнем регистре в строке
  • Python: Где freeze.py?
  • Каков самый питоновский способ предоставить значение возврата в задании?
  • Python - лучший язык программирования в мире.