Python比較運算用法樣本

來源:互聯網
上載者:User


這篇文章介紹python中的比較運算,比較運算不僅可以用來比較兩個數值資料的大小,還能比較字串或列表的大小。


數值資料的比較十分簡單,如果運算式為真,就返回True,為假就返回False,請看下面的執行個體:

>>> 1>2
False
>>> 1<2
True
#比較兩個數值資料是否相等的時候,需要使用雙等號
>>> 1==1
True
>>> 2>=1
True
>>> 2>=2
True
#1不等於2
>>> 1!=2
True

0×2.比較列表
列表的大小比較會逐個比較列表中的元素(相同索引位置的元素進行比較),如果完全相同則返回True,請看下面的執行個體:

#建立兩個列表,第一個元素並不相同
>>> a=["www.111cn.net","晴刃"]
>>> b=["111cn.net","晴刃"]

#因為第一個元素不同,所以返回False
>>> print(a==b)
False

#比較運算會逐個比較列表中的元素值,本例中因為b中第一個元素的第一個字元w的ASCII碼值要大於a中第一個元素的第一個字元w的ASCII碼值,所以答案是False,這在後面的字串比較中會詳細介紹
>>> print(a<b)
False

#下面這個運算式看起來有點複雜,首先a[-1]和b[-1]能夠定位到兩個列表的最後一個元素(晴刃),[-len(a[-1]):-1]中的len()Function Compute這個元素的長度(2),負號會讓計數從後往前計算,最後一位是-1,-2則定位到"晴",說明號分區將從-2的位置,取到-1的位置,但不包含-1的位置,所以最後截取出來的就是字元"晴",兩個"晴"比較肯定返回True
>>> print(a[-1][-len(a[-1]):-1]==b[-1][-len(a[-1]):-1])
True

>>> b=["www.111cn.net","晴刃"]
>>> print(a==b)
True

對列表的比較方法同樣適用於元組和字典,字典稍微有所不同,在字典中,只要鍵和值都能匹配,則兩個字典相同,不需要索引值的索引位置也相同,請看下面的執行個體:

#雖然a和b字典中索引值對的索引位置不同,但每個鍵和值都在另一個字典中能夠匹配到相同的資料,python認為這兩個字典是相同的,而列表和元組則需要匹配索引和索引位對應的值
>>> a={1:"a",2:"b",3:"c"}
>>> b={2:"b",3:"c",1:"a"}
>>> print(a==b)
True

>>> c={1:"x",2:"2",3:"three"}
>>> print(a==c)
False

0×3.比較字串
字串的比較實際上是ASCII碼的比較,在ASCII碼中,每個字元都有一個對應的十進位數,請看下面的執行個體:

#比較單個字元,在ASCII碼中,大寫字母排列在小寫字母之前,大寫的A對應的十進位數是65,而小寫a對應的十進位為97,所以運算式為真
>>> print("a">"A")
True
>>> print("a">"b")
False

#多個字元組成的字串比較大小時,會從索引0的位置開始逐個進行比較,只要碰到一個字元不相等則返回結果,不會再去比較後面的字元(請注意,是逐個比較,而不是將所有字元轉換成十進位相加後的比較,大家可以嘗試比較bdef和azzz的大小,明顯azzz所有字元的十進位相加比bdef大,但是逐個比較時第一個字元a就比b小,所以python會認為bdef比azzz大)
>>> a="abcd"
>>> b="abcd"
>>> c="c"
>>> d="abcdmdzz"
>>> print(a==b)
True
#c和a比較,明顯c在ASCII碼中對應的十進位數要比a大
>>> print(a<c)
True

#雖然b和d的前4個字元相等,但是d後面還有四個字元,比較到第五個字元的時候,a並沒有字元可以比較了,所以python認為d比a大
>>> print(a<d)
True

在字串比較時,有兩個方法比較實用,分別為upper()和lower(),這兩個方法能將字串轉換成大寫或小寫形式,請看下面的執行個體:

#upper()能將字串轉換成大寫,而lower()剛好相反
>>> a="abcd"
>>> b=a.upper()
>>> print(b)
ABCD
>>> c=b.lower()
>>> print(c)
abcd

#有時候字串中包含大小寫形式,而我們只想比較每個字元是否相同,可以將他們都轉換成大寫或小寫形式然後比較他們是否相同
>>> x="www.111cn.net"
>>> y="WWW.111cn.net"
>>> print(x.upper()==y.upper())
True

#最後補充一個not運算子,對結果取反
>>> 1==1
True
>>> not 1==1
False

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.