python的is和==

1. is 和 ==

万物皆对象,对象是由id(地址),type(类型),value(值)组成。

在这里插入图片描述

  1. is:判断两个地址是否一样,也就是说它们的引用的是否为同一个对象。
  2. == :判断两个对象的值是否相等

2. 举例

1. ==

a = 1
b = 1

c = [1, 2, 3]
d = [1, 2, 3, 4]

print('a和b值是否相等', a == b)
print('c和d值是否相等', c == d)
打印结果:
a和b值是否相等 True
c和d值是否相等 False	

2. is

a = 1
b = a

c = [1, 2, 3]
d = [1, 2, 3, 4]

print(id(a))
print(id(b))
print(id(c))
print(id(d))

a和b的地址一样,它们引用同一个对象
在这里插入图片描述c和d的地址不一样,它们引用不是同一个对象
在这里插入图片描述

3. a = 10 b =10,地址一样吗?

答案是一样的
a = 10
b = 10

print(id(a))
print(id(b))

2285737568848
2285737568848

如果将a和b的值换位列表呢?

地址又不一样了,这又是为什么?
a = [1, 2, 3]
b = [1, 2, 3]

print(id(a))
print(id(b))

2229396321664
2229396321600

缓存池技术:
python为了优化速度,提高效率,避免了频繁的创建和销毁对象,[-5,256]会被认为是频繁使用的整数 它会提前存储在小整数对象池中,数据只要在这个区间内 可以直接引用同一个对象。

a = 10
b = 10

print(id(a))
print(id(b))

print(a is b)

2476320713296
2476320713296
True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024节

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值