首页 > 编程语言 > 详细

1.Python中的标识、地址以及 “is”,“==” 的一些注意事项.

时间:2019-04-06 21:25:26      阅读:185      评论:0      收藏:0      [点我收藏+]

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

 

a=[1,2,3]
b=a
print(b is a)
print(b==a)

b=a[:]
print(b is a)
print(b==a)

#前者在传递引用,后者在拷贝
b
=a[0] print(b is a[0]) print(b==a[0]) 输出结果为: True True False True True True

 

 

1.Python中的标识、地址以及 “is”,“==” 的一些注意事项.

原文:https://www.cnblogs.com/jaredisbest/p/10662831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!