江湖散人 发表于 2021-4-2 14:26:20

元组的定义

a=(1,2,3,4)
b=1,2,3,4
a is b
False
type(b)
class tuple



a和b都是元组,而且内容是一样的,为什么返回的是False ?

昨非 发表于 2021-4-2 14:49:26

a=(1,2,3,4)
b=1,2,3,4
print(a is b)
print(type(a) is type(b))
结果:True
True

剑廿三 发表于 2021-4-2 14:54:14

a和b虽然内容一样,你可以通过id查找他们存储的地址
但是在系统中储存的地址不一样,你可以说a和b是相等的,但不能是他们就是一个东西
这就像很多人叫张三,但你不能说那些个叫张三的人都是同一个人吧!

逃兵 发表于 2021-4-2 14:57:52

你是用 ==的话,是不会出错的,

但是你这里使用的是is

is必须id一致才行,也就是说他们必须存储在同一

在idle的交互模式下
a = (1, 2, 3, 4)

b = 1, 2, 3, 4
会分别开辟出两个内存储存数据
所以a is b会出现False
在文本模式下
a = (1, 2, 3, 4)

b = 1, 2, 3, 4
会公用一套内存
所以a is b 为True

江湖散人 发表于 2021-4-2 20:13:25

逃兵 发表于 2021-4-2 14:57
你是用 ==的话,是不会出错的,

但是你这里使用的是is


好,谢谢

江湖散人 发表于 2021-4-2 20:14:03

昨非 发表于 2021-4-2 14:49
结果:

谢谢啊

江湖散人 发表于 2021-4-2 20:14:36

剑廿三 发表于 2021-4-2 14:54
a和b虽然内容一样,你可以通过id查找他们存储的地址
但是在系统中储存的地址不一样,你可以说a和b是相等的 ...

谢谢
页: [1]
查看完整版本: 元组的定义