溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中怎么實(shí)現(xiàn)三元表達(dá)式嵌套

發(fā)布時(shí)間:2021-07-10 16:28:25 來(lái)源:億速云 閱讀:290 作者:Leah 欄目:編程語(yǔ)言

這篇文章給大家介紹Python中怎么實(shí)現(xiàn)三元表達(dá)式嵌套,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

請(qǐng)看代碼案例:

cmp = lambda a, b: 0 if a == b else 1 if a > b else -1 print(cmp(3,2)) print(cmp(2,3)) print(cmp(2,2)) out:1 -1 0

以上代碼的功能是對(duì)兩個(gè)數(shù)進(jìn)行比較,若第一個(gè)數(shù)等于第二個(gè)數(shù)返回0;若第一個(gè)數(shù)大于第二個(gè)數(shù)返回1;若第一個(gè)數(shù)小于第二個(gè)數(shù)返回-1。

直接看是不是比較懵?我把它拆分一下,換一種寫法,會(huì)容易懂得多。

def cmp2(a, b):     if a == b:         return 0     else:         if a > b:             return 1         else:             return -1 print(cmp2(3, 2)) print(cmp2(2, 3)) print(cmp2(2, 2)) out:1 -1 0

可以看到上述2個(gè)函數(shù)功能完全一致,第一種寫法簡(jiǎn)潔的多!

再來(lái)熟悉一下這種寫法,為了便于理解我多加了對(duì)括號(hào):

0 if a == b else (1 if a > b else -1)

這種語(yǔ)句是三元表達(dá)式嵌套三元表達(dá)式的結(jié)構(gòu),從左向右計(jì)算。

三元表達(dá)式首先找if,找到if判斷a ==b (判斷元素):

  • 若該條件滿足則返回if左邊的0(結(jié)果元素1)作為整個(gè)表達(dá)式的運(yùn)算結(jié)果。

  • 若該判斷條件不滿足則返回判斷條件右邊的三元表達(dá)式(結(jié)果元素2)。

右邊仍然是三元表達(dá)式,繼續(xù)計(jì)算該三元表達(dá)式,找到if判斷a>b(判斷元素):

  • 若該條件滿足則返回if左邊的1(結(jié)果元素1)作為整個(gè)表達(dá)式的運(yùn)算結(jié)果。

  • 若該判斷條件不滿足則返回判斷條件右邊的-1(結(jié)果元素2)作為整個(gè)表達(dá)式的運(yùn)算結(jié)果。

python的三元表達(dá)式非常靈活,從上述案例中可以學(xué)習(xí)到三元表達(dá)式的結(jié)果元素可以是三元表達(dá)式,也就是說三元表達(dá)式可以嵌套三元表達(dá)式使用。

關(guān)于Python中怎么實(shí)現(xiàn)三元表達(dá)式嵌套就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI