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