is和==
一、id内存地址
s = 'alex' print(s,type(s),id(s)) li = [1,2,3] print(li,type(li),id(li))
二、is和==
==比较的是值
is比较的是内存地址
对于int,小数据池,范围-5~256创建的相同的数字,都指向同一个内存地址
对于字符串,小数据池,范围最多20个字符,如果有空格或特殊字符,那指向两个内存地址
s1 = 'alex' s2 = 'alex' print(s1 == s2) print(s1 is s2)
列表,字典,元祖,集合都指向两个内存
l1 = [1,2,3] l2 = [1,2,3] print(l1 == l2) print(id(l1),id(l2)) print(l1 is l2) # is比较的是内存地址,此处为False
浙公网安备 33010602011771号