首頁 > 軟體

Python中的 any() 函數和 all() 函數

2022-04-14 19:00:03

回想下,在 Python 中程式設計時,你是否曾經需要檢查某個可迭代物件(如列表)中的任何元素或所有元素的計算結果是否為True

假設,我們要判斷數位列表a的所有數位是否都大於0,此時你估計會這麼幹:

a = [1, 2, 3, 4]


def is_big_0(l):
    # 判斷列表l的所有數位是否大於,如果大於0則返回True,否則返回False
    for i in l:
        if i <= 0:
            return False
    return True


print(a)

停頓幾秒,想一想,假設下次我們要判斷其他條件,如每個元素都是偶數或奇數?難道每次都要寫一個函數然後for迴圈遍歷嗎?

其實python中有兩個神奇的函數any()all(),他們可以快速完成上面類似的任務!

接下來,我們將分享 Python 的 any() 和 all() 函數,並使用簡單的範例來了解它們的工作原理。

Python 中的布林資料型別

在學習 any() 和 all() 之前,先快速回顧一下 Python 中的布林資料型別。你可以在任何 Python 物件上呼叫 bool() 以獲取其真假值。如下程式碼範例:

# None 的真假值是 False
print(bool(None))
# 輸出 False

# 一個空字串("")的真假值是 False
print(bool(""))
# 輸出 False

# 一個空字串或任何可迭代物件的真假值是 False
print(bool([]))
# 輸出 False

# 0 {int (0), float (0.0) 和 complex (0j)} 的真假值是 False
print(bool(0))
# 輸出 False

如上面的程式碼所示,可知:

  • None 的真假值為 False
  • 數位零(0)——整數、浮點數和 0 的複數表示——都是 False
  • 所有空的可迭代物件(如列表、元組和字串)的真假值為 False

也就是說,所有非零值和非空可迭代物件都為True,這是相當直觀的。

請記住:所有非零值和非空可迭代物件都為True,這是相當直觀的!

如何在 Python 中使用 any() 函數

讓我們瞭解 any() 函數的語法,先看一些簡單的例子,之後再看更有用的例子。


IT145.com E-mail:sddin#qq.com