1. 程式人生 > >python物件的比較(is,==,物件大小比較>,

python物件的比較(is,==,物件大小比較>,

#一、python物件的"==、is"比較
"""
1、python的比較總是檢查複合物件的所有部分,直到可以得出結果為止。
2、會自動遍歷巢狀的所有資料結構,有多深走多深,首次發現的差值將決定比較的結果
"""

"""
== :操作符測試值的相等性
is :表示式測試物件的一致性,表示同一個物件,在同一記憶體地址中
輸出結果:
True False
"""
L1 = [1,('A',2)]
L2 = [1,('A',2)]
print L1 == L2,L1 is L2

"""
關於短字串的一致性比較特殊:
python內部暫時儲存並重復使用短字串作為最佳化,實際記憶體中只有一個字串'spam‘供S1、S2分享
輸出結果:
True True
"""
S1 = "SPAM" S2 = "SPAM" print S1 == S2,S1 is S2 """ 當比較的字串較長時 is比較結果為False 執行結果:False """ S11 = "a longer strnig" S22 = "a longer string" print S11 is S22 """ 列表、字典、元組、自定義程式型別的一致性判定(is) 以下判定結果均為False,因為都不是一個物件,記憶體地址不一樣 """ l = [1,3,'a'] print l is list d = {1:1,'a':'b'} print d is dict t = (1,2
,3) print t is tuple class A(object): def __init__(self): print "object is born!" a = A() print a is A print '---------------' a1 = 1 a2 = 1 print a1 is a2 #返回True #二、python物件的大小比較規則: """ 1、數字通過相對大小進行比較 2、字串按照字典順序(編碼順序),一個字元接一個字元進行比較 3、列表和元組從左到右對每部分的內容進行比較 4、字典通過排序後的(鍵,值)列表進行比較,pyton3.0中不支援 5、數字混合型別pyton3.0中不支援,拼音。6中允許 """
#執行結果:[True, True, True, True] print [33 < 99,'abc' < 'ac',{'a':1,'b':2} > {'a':1,'B':2},1 < 'spam'] #巢狀比較 """ 執行結果:False False True """ Li1 = [1,('a',3)] Li2 = [1,('a',2)] print Li1 < Li2,Li1 == Li2,Li1 > Li2