python中is 和 == 的区别
is 和 == 在python中被用于两个对象之间的比较
Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。
== 是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等
is 是比较两个对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同,有点类似js中的全等( === )。
只有数值型和字符串型,并且在通用对象池中的情况下,a is b才为True,否则当a和b是int,str,tuple,list,dict或set型时,a is b均为False。
a=10
b=10
a == b
True
a is b
True
a=b=[1,2,3]
c=[1,2,3]
a==c
True
a is c # a c虽然value和type相同但是id不同,所以is 返回false
False
id(a) #查看id值
74114056L
id(c)
66742216L
Unicode类型转成str (encode(‘utf-8’) decode(‘utf-8’) )
print type(pwd_d[u'pwd'])
<type 'unicode'>
pwd_d[u'pwd'].encode('utf-8') # 转成str
print type(pwd)
<type 'str'>
pwd.decode('utf-8') # 转成Unicode