python三元運(yùn)算符實(shí)現(xiàn)方法
這是今天在溫習(xí)lambda表達(dá)式的時(shí)候想到的問題,眾所周知C系列語言中的 三元運(yùn)算符(?:)是一個(gè)非常好用的語句,
關(guān)于C中的三元運(yùn)算符
表達(dá)式1?表達(dá)式2:表達(dá)式3
那么在python應(yīng)該如何實(shí)現(xiàn)呢,請看下面例子:
答案是:X = (表達(dá)式1)and 表達(dá)式2(真值返回)or 表達(dá)式3(假值返回)
舉個(gè)例子:
def main():
y = 5
x = (y > 5) and 2 or 4
print x
pass
這段代碼的是意思的輸出是4,可以把表達(dá)式的條件改為(y<=5)這時(shí)候輸出就是2
為什么能得到這樣的結(jié)果:
0、''、[]、()、{}、None在布爾上下文中為假;其它任何東西都為真。
在Python中,and和or執(zhí)行布爾邏輯演算,但是它們并不返回布爾值;而是,返回它們實(shí)際進(jìn)行比較的值之一。
如果布爾上下文中的所有值都為真,那么and返回最后一個(gè)值。上下文中的某個(gè)值為假,則and返回第一個(gè)假值。
如果有一個(gè)值為真,or立刻返回該值。如果所有的值都為假,or返回最后一個(gè)假值
基于上述的背景,你應(yīng)該還能理解這個(gè)表達(dá)式的含義了吧。
“注:“里面應(yīng)該是這個(gè)用法的一些缺陷,如果表達(dá)式2或3是幾個(gè)定義的假值(0、''、[]、()、{}、None)之一,就會(huì)影響判斷了,我的建議是吧這些假值都用字符串的形式表現(xiàn),并且將“”特殊處理為“”。后續(xù)再做判斷
再次見識(shí)到Python的強(qiáng)大,如果您有什么見解歡迎評(píng)論。
后記:
最近看了一些文章,有位大神對(duì)這個(gè)問題對(duì)這個(gè)缺陷給了一個(gè)完美的解決方案
X=(表達(dá)式1)and[表達(dá)式2(真值返)]or[表達(dá)式3(假值返回)](注:表達(dá)式2以及表達(dá)3不能為0、''、[]、()、{}、None)
對(duì)表達(dá)式2,3用中括號(hào)括起來,這樣兩者的值將永遠(yuǎn)不會(huì)為假,這個(gè)解決方案的確不錯(cuò)。
相關(guān)文章
在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮
這篇文章主要介紹了在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python爬蟲Scrapy框架IP代理的配置與調(diào)試
在調(diào)試爬蟲的時(shí)候,新手都會(huì)遇到關(guān)于ip的錯(cuò)誤,本文就來介紹一下Python爬蟲Scrapy框架IP代理的配置與調(diào)試,具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12
pytorch載入預(yù)訓(xùn)練模型后,實(shí)現(xiàn)訓(xùn)練指定層
今天小編就為大家分享一篇pytorch載入預(yù)訓(xùn)練模型后,實(shí)現(xiàn)訓(xùn)練指定層,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Python中使用matplotlib繪制mqtt數(shù)據(jù)實(shí)時(shí)圖像功能
這篇文章主要介紹了Python中使用matplotlib繪制mqtt數(shù)據(jù)實(shí)時(shí)圖像,本代碼中publish是一個(gè)死循環(huán),數(shù)據(jù)一直往外發(fā)送,詳細(xì)代碼跟隨小編一起通過本文學(xué)習(xí)下吧2021-09-09
Linux 下 Python 實(shí)現(xiàn)按任意鍵退出的實(shí)現(xiàn)方法
這篇文章主要介紹了Linux 下 Python 實(shí)現(xiàn)按任意鍵退出的實(shí)現(xiàn)方法的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù))
Counter 是一個(gè)簡單的計(jì)數(shù)器,用于統(tǒng)計(jì)某些可哈希對(duì)象的數(shù)量。它以字典的形式存儲(chǔ)元素和它們的計(jì)數(shù),這篇文章主要介紹了Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù)),需要的朋友可以參考下2023-04-04
Python實(shí)現(xiàn)從url中提取域名的幾種方法
這篇文章主要介紹了Python實(shí)現(xiàn)從url中提取域名的幾種方法,本文給出了3種方法實(shí)現(xiàn)在URL中提取域名的需求,需要的朋友可以參考下2014-09-09

