python is_Python is 和 == 的区别

barryxiao

关于 is 和 == 的标识问题

(1)只要是变量的值相同,标识都相同,没有-5~256的限制,看下面的例子:

a = 100000

b = 100000

if a is b:

print('a 和 b 标识相同,标识为:',id(a))

else:

print('a 和 b 标识不相同,a 标识为:',id(a),'b 标识为:',id(b))

输出结果为:

a 和 b 标识相同,标识为: 2158477874512

(2)同样的如果是负数,仍然没有上述限制:

a = -100000

b = -100000

if a is b:

print('a 和 b 标识相同,标识为:',id(a))

else:

print('a 和 b 标识不相同,a 标识为:',id(a),'b 标识为:',id(b))

输出结果为:

a 和 b 标识相同,标识为: 2137845175632

(3)列表也是一样的,只要是列表项数值一样,那么标识也是一样的。例子如下:

list1 = [10000,20000,30000]

list2 = [10000,12000,15000]

if list1[0] is list2[0]:

print('list1[0] 和 list2[0] 标识相同,标识为:',id(list1[0]))

else:

print('list1[0] 和 list2[0] 标识不相同,list1[0]标识为:',id(list1[0]),'list2[0]标识为:',id(list2[0]))

输出结果为:

list1[0] 和 list2[0] 标识相同,标识为: 1375086286224

(4)元组的标识是跟着变量名的,变量名不一样,标识也不一样,上例子:

tuple1 = (10000,20000,30000)

tuple2 = (10000,12000,15000)

if tuple1[0] is tuple2[0]:

print('tuple1[0] 和 tuple2[0] 标识相同,标识为:',id(tuple1[0]))

else:

print('tuple1[0] 和 tuple2[0] 标识不相同,tuple1[0] 标识为:',id(tuple1[0]),'tuple2[0]标识为:',id(tuple2[0]))

输出结果为:

tuple1[0] 和 tuple2[0] 标识不相同,tuple1[0] 标识为: 1375086286384 tuple2[0]标识为: 1375086286480

(5)字典和列表是一样的,只要是列表项数值一样,那么标识也是一样的。例子如下:

dict1 = {1:10000,2:20000,3:30000}

dict2 = {1:10000,2:12000,3:15000}

if dict1[1] is tuple2[1]:

print('dict1[1] 和 tuple2[1] 标识相同,标识为:',id(dict1[1]))

else:

print('dict1[1] 和 tuple2[1] 标识不相同,dict1[1] 标识为:',id(dict1[1]),'tuple2[1] 标识为:',id(dict2[1]))

输出结果为:

dict1[1] 和 tuple2[1] 标识不相同,dict1[1] 标识为: 1375086286224 tuple2[1] 标识为: 1375086286224

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值