欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 中判斷列表是否為空的方法

 更新時(shí)間:2019年11月24日 14:55:45   作者:賈攀家  
這篇文章主要介紹了Python 中判斷列表是否為空的方法,本文通過(guò)代碼詳解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在判斷列表是否為空時(shí),你更喜歡哪種方式?決定因素是什么?

在 Python 中有很多檢查列表是否是空的方式,在討論解決方案前,先說(shuō)一下不同方法涉及到的不同因素。

我們可以把判斷表達(dá)式可以分為兩個(gè)陣營(yíng):

  1. 對(duì)空列表的顯式比較
  2. 對(duì)空列表的隱式求值

這意味著什么?

顯式比較

我們從顯式比較開(kāi)始說(shuō)起,無(wú)論我們使用列表符號(hào) [] 還是聲明空列表的函數(shù) list() ,遵循的策略是查看待檢查列表是否與空列表完全相等。

# 都是用來(lái)創(chuàng)建空列表
a = []
b = list()
print(a == b) # True

另外,我們可以使用 len() 函數(shù)返回列表中的元素個(gè)數(shù)。

a = []
if len(a) == 0:
  print("The list is empty")

隱式求值

和顯式比較相反,隱式求值遵循的策略是:將空列表求值為布爾值的 False ,將有元素填充的列表求值為布爾值的 True 。

a = []
b = [1]
if a:
  print("Evaluated True")
else:
  print("Evaluated False")
if b:
  print("Evaluated True")
else:
  print("Evaluated False")
# 輸出
Evaluated False
Evaluated True

那么,顯式比較和隱式求值有什么區(qū)別呢?

很多人習(xí)慣于使用顯式比較的方式。但是如果你遵循鴨子類型的設(shè)計(jì)風(fēng)格,那么會(huì)更加偏向于使用的是隱式方法。

什么是鴨子類型

「鴨子類型」這個(gè)此來(lái)自以下短語(yǔ):

當(dāng)看到一只鳥(niǎo)走起來(lái)像鴨子、游泳起來(lái)像鴨子、叫起來(lái)也像鴨子,那么這只鳥(niǎo)就可以被稱為鴨子。

從功能上講,這是對(duì)對(duì)象實(shí)際數(shù)據(jù)類型壓力較小的一種確認(rèn)。在鴨子類型中,關(guān)注點(diǎn)在于對(duì)象的行為,能作什么(比如,可迭代 iterable);而不是關(guān)注對(duì)象所屬的類型。鴨子類型在動(dòng)態(tài)語(yǔ)言中經(jīng)常使用,非常靈活。

鴨子類型優(yōu)先考慮便利性而非安全性,從而可以使用更靈活的代碼來(lái)適應(yīng)更廣泛的用途,它不會(huì)像傳統(tǒng)方式那么嚴(yán)格。

我們應(yīng)該使用哪種方式?

當(dāng)我們?cè)搅私怆[式求值,就越傾向于使用這種方式,因?yàn)槲覀冎揽樟斜韺⒈磺笾禐?False 。

a = []
print(bool(a)) # False

這使得我們可以合并那些很長(zhǎng)的檢查表達(dá)式,如:

# 之前
if isinstance(a, list) and len(a) > 0:
  print("Processing list...")
# 之后
if a:
  print("Processing list...")

當(dāng)然,最終的選擇還取決于這個(gè)本次檢查的意圖:

  • 如果你檢查空列表是為了對(duì)其進(jìn)行迭代,那么隱式求值是更合適的方法。
  • 如果你檢查空列表是為了在之后調(diào)用列表中的方法,那么可以考慮使用顯式比較來(lái)同時(shí)驗(yàn)證數(shù)據(jù)類型。

總結(jié)

以上所述是小編給大家介紹的Python 中判斷列表是否為空的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • 查看Django和flask版本的方法

    查看Django和flask版本的方法

    今天小編就為大家分享一篇查看Django和flask版本的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • python的Crypto模塊實(shí)現(xiàn)AES加密實(shí)例代碼

    python的Crypto模塊實(shí)現(xiàn)AES加密實(shí)例代碼

    這篇文章主要介紹了python的Crypto模塊實(shí)現(xiàn)AES加密實(shí)例代碼,簡(jiǎn)單介紹了實(shí)現(xiàn)步驟,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python實(shí)現(xiàn)基本進(jìn)制轉(zhuǎn)換的方法

    python實(shí)現(xiàn)基本進(jìn)制轉(zhuǎn)換的方法

    這篇文章主要介紹了python實(shí)現(xiàn)基本進(jìn)制轉(zhuǎn)換的方法,涉及Python數(shù)學(xué)運(yùn)算的取余與字符串操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 使用pyecharts生成Echarts網(wǎng)頁(yè)的實(shí)例

    使用pyecharts生成Echarts網(wǎng)頁(yè)的實(shí)例

    今天小編就為大家分享一篇使用pyecharts生成Echarts網(wǎng)頁(yè)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實(shí)現(xiàn)

    python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實(shí)現(xiàn)

    本文主要介紹了python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 詳解Python如何實(shí)現(xiàn)批量為PDF添加水印

    詳解Python如何實(shí)現(xiàn)批量為PDF添加水印

    我們有時(shí)候需要把一些機(jī)密文件發(fā)給多個(gè)客戶,為了避免客戶泄露文件,會(huì)在機(jī)密文件中添加水印。本文將利用Python實(shí)現(xiàn)批量為PDF添加水印,需要的可以參考一下
    2022-05-05
  • TensorFlow人工智能學(xué)習(xí)Keras高層接口應(yīng)用示例

    TensorFlow人工智能學(xué)習(xí)Keras高層接口應(yīng)用示例

    這篇文章主要為大家介紹了TensorFlow人工智能學(xué)習(xí)中Keras高層接口的應(yīng)用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • python中各種路徑設(shè)置的方法詳解

    python中各種路徑設(shè)置的方法詳解

    python程序想要在一個(gè)設(shè)備上去運(yùn)行除了需要安裝python解釋器和相關(guān)依賴項(xiàng)之外,還需要將對(duì)應(yīng)的文件路徑添加到環(huán)境變量path中才可以,下面這篇文章主要給大家介紹了關(guān)于python中各種路徑設(shè)置的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Python解析JSON數(shù)據(jù)的示例代碼

    Python解析JSON數(shù)據(jù)的示例代碼

    JSON格式是網(wǎng)站和API使用的通用標(biāo)準(zhǔn)格式,現(xiàn)在主流的一些數(shù)據(jù)庫(kù)(如PostgreSQL)都支持JSON格式,在本文中,我們將介紹如何使用Python解析JSON數(shù)據(jù),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-09-09
  • Python機(jī)器學(xué)習(xí)中實(shí)現(xiàn)距離和相似性計(jì)算詳解

    Python機(jī)器學(xué)習(xí)中實(shí)現(xiàn)距離和相似性計(jì)算詳解

    這篇文章主要為大家詳細(xì)介紹了Python機(jī)器學(xué)習(xí)中實(shí)現(xiàn)距離和相似性計(jì)算的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03

最新評(píng)論