老师我可不可以这样理解,对于{1,2,3}来说地址都是一样的,但是现在a.b就好像是两个指针,指向同一块内存,但是存储指针的地址是不同的,所以输出为false?

来源:5-12 如何判断变量的值、身份与类型

江月枫鱼

2018-05-04

>>> a = {1,2,3}

>>> b = {1,2,3}

>>> a==b

True

>>> a is b

False

>>> id({1,2,3})

2670225347976



写回答

1回答

kcoticwolas

2018-05-04

对于你的问题,我的理解如下,供参考。

1. 当你给b赋值{1,2,3}时,python是在内存里另找了一个地址给b。虽然值仍然是{1,2,3},但是地址和之前给a赋值的是不一样的。
2. 可以参考以下代码。

>>> a = {1,2,3}
>>> b = {1,2,3}
>>> a == b
True
>>> a is b
False
>>> b = a
>>> a == b
True
>>> a is b
True


1
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程