Python中cmp()函數(shù)有什么用

這篇文章給大家分享的是有關(guān)Python中cmp()函數(shù)有什么用的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:13518219792

Python中的cmp()函數(shù)用于比較兩個(gè)對(duì)象的大小。

cmp( x, y):比較2個(gè)對(duì)象,前者小于后者返回-1,相等則返回0,大于后者返回1.

Python的cmp比較函數(shù)比較原理

Python的cmp函數(shù)可以比較同類型之間,或者不同數(shù)據(jù)類型之間。然后根據(jù)Python的cmp比較函數(shù)的返回值來判定比較大小。

>>> list1, list2 = [123, 'xyz'], [456, 'abc']
>>> cmp(list1, list2)
-1
>>> cmp(list2, list1)
1
>>> list3 = list2 + [789]
>>> list3
[456, 'abc', 789]
>>> cmp(list2, list3)
-1

觀察上面cmp函數(shù)的幾個(gè)比較,可以總結(jié):

Python的cmp比較函數(shù) ,如果我們比較的是兩個(gè)同類的對(duì)象,比較操作是非常直觀的。

數(shù)字和字符串的比較,直接比較它們的值。

對(duì)于序列類型的比較,方式上有相似。Python在兩個(gè)對(duì)象基本不能比較的時(shí)候盡量做出公平的結(jié)果。比如當(dāng)兩個(gè)對(duì)象沒有關(guān)系時(shí),或者兩種類型根本就沒有用于比較的函數(shù)時(shí),這時(shí) Python只能根據(jù)"邏輯"來做出結(jié)論。比較的算法邏輯:

1.   對(duì)兩個(gè)列表的元素進(jìn)行比較.

2.   如果比較的元素是同類型的,則比較其值,返回結(jié)果.

3.   如果兩個(gè)元素不是同一種類型,則檢查它們是否是數(shù)字.

a. 如果是數(shù)字,執(zhí)行必要的數(shù)字強(qiáng)制類型轉(zhuǎn)換,然后比較.

b. 如果有一方的元素是數(shù)字,則另一方的元素"大"(數(shù)字是"最小的")

c. 否則,通過類型名字的字母順序進(jìn)行比較.

4.   如果有一個(gè)列表首先到達(dá)末尾,則另一個(gè)長(zhǎng)一點(diǎn)的列表"大".

5.   如果我們用盡了兩個(gè)列表的元素而且所有元素都是相等的,那么結(jié)果就是個(gè)平局,就

是說返回一個(gè) 0.

這就是Python的cmp函數(shù)比較原理了。

注意:

Python 3.X 的版本中已經(jīng)沒有 cmp 函數(shù),如果你需要實(shí)現(xiàn)比較功能,需要引入 operator 模塊,適合任何對(duì)象。

感謝各位的閱讀!關(guān)于Python中cmp()函數(shù)有什么用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

當(dāng)前標(biāo)題:Python中cmp()函數(shù)有什么用
URL標(biāo)題:http://muchs.cn/article44/jehcee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站、全網(wǎng)營(yíng)銷推廣、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司