赞
踩
is和==一样吗?
·“==”操作符测试值的相等性。Python运行相等测试,递归地比较所有内嵌对象。
·"is"表达式测试对象的一致性。Python测试二者是否是同一个对象(也就是说,在同一个内存地址中)
在上一个例子中,L1和L2通过了“==”测试(他们的值相等,因为它们的所有内容都是相等的),但是is测试却失败了(它们是两个不同的对象,因此有不同的内存区域)。
再来看一个有趣的例子?
为什么同样是字符串,is比较却不同呢?
因为在Python内部暂时储存并重复使用短字符串作为最佳化,事实上内存里只有一个字符串'spam'供S1和S2分享。而长字符串则像列表一样分配一块新的内存空间。
所有的Python对象也可以支持比较操作。Python的比较总是检查复合对象的所有部分,直到可以得出结果为止。事实上,当嵌套对象存在时,Python能够自动遍历数据结构,并从左到右递归地应用比较,要多深就走多深。过程中首次发现的差值将决定比较的结果。
因为嵌套的3大于2,这里的L1大于L2。
一般来说,Python中不同的类型的比较方法如下:
·数字通过相对大小进行比较。
·字符串是按照字典顺序,一个字符接一个字符地对比进行比较("abc"<"ac")。
·列表和元组从左到右对每部分的内容进行比较。
但是在Python3.0以上版本不再支持非数字的混合类型比较,也不支持字典比较,不过字典的比较可通过items方法比较。
在Python中,与大多数程序设计语言一样,整数0代表假,整数1代表真。不过,除此之外,Python也把任意的空数据结构视为假,把任何非空数据结构视为真。更一般地,真和假的概念是Python中每个对象的固有属性:每个对象不是真就是假,如下所示:
·数字如果非零,则为真。
·其他对象如果非空,则为真。
你可以简单的用bool函数判断一个对象为真为假。
判断是否为同一对象
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。