python中is 和 == 的区别

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值