执行下面两个语句:
a = 'banana'
b = 'banana'我们知道,a和b都指向一个字符串,但是它们指向的是不是同一个字符串呢?这儿可能有两种情况:

一种情况是,a和b是两个不同的对象,但是值相同,还有一种情况是它们指向同一个对象。
要确认两个变量是否是同一个对象,可以使用is操作符:
>>> a = 'banana'
>>> b = 'banana'
>>> a is b
True在这个例子中,Python只创建了一个字符串对象,a和b都指向它。 但是当你创建两个列表时,你会得到两个对象:
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False这种情况下,我们可以说,这两个列表是等价的,因为它们拥有相同的元素,但是并不是同一个,它们是不同的对象。当然,如果如果两个对象是同一个,那么它们一定是相等的,反之就不成立了。
到目前位置,我们还在交替使用对象和值,其实更严谨的说法应该是,对象拥有值,如果你执行a = [1, 2, 3],变量a指向一个列表对象,这个列表对象的值是一个特定元素序列。如果其它列表有相同的元素,我们说他们有相同的值。