首頁 >後端開發 >Python教學 >Python 的 `any()` 和 `all()` 函數如何有效評估可迭代物件的真實性?

Python 的 `any()` 和 `all()` 函數如何有效評估可迭代物件的真實性?

Barbara Streisand
Barbara Streisand原創
2025-01-04 08:02:33459瀏覽

How Do Python's `any()` and `all()` Functions Work for Efficient Truthiness Evaluation of Iterables?

理解Python的any()和all()函數

Python中的內建函數,any()和all(),play在評估可迭代中值的真實性方面發揮著至關重要的作用。這些函數提供了測試多個條件的簡潔有效的方法。

any() 函數

any() 決定可迭代中的任何元素是否為 True。即使存在True 值,它也會傳回True;

範例:

my_list = [0, False, 'Hello', 1, '']
print(any(my_list))  # Outputs True as 'Hello' and 1 are True

all() 函數

all(), 在另一方面,檢查iterable 中的每個元素是否為True。僅當所有元素均為True 時才傳回True;

範例:
my_list = [True, 1, 'True']
print(all(my_list))  # Outputs True as all elements are True

真實性與邏輯評估

真實性與邏輯評估

Iterable Values any() all()
All True True True
All False False False
Mixed True and False True False
Empty Iterable False True

真實性與邏輯評估

any() 和all () 本質上分別執行邏輯「或」和「與」運算。了解他們的真實行為至關重要。

d = defaultdict(list)
print(list(zip(*d['Drd2'])))  # [(1, 1), (5, 6), (0, 0)]
print([any(x) and not all(x) for x in zip(*d['Drd2'])])  # [False, False, False]
真值表:

print([x[0] != x[1] for x in zip(*d['Drd2'])])  # [False, True, False]
理解您的程式碼

在您的程式碼中,您使用any () 和all() 的組合來檢查元組中的任何值是否不同,同時確保並非所有值都不同是不同的。然而,由於程式碼評估中的誤解,沒有獲得您期望的輸出:在這種情況下,any(x) 檢查元組中是否有任何值不同(即True),而all(x) 確保並非所有值都不同(即False)。由於 (1, 1)、(5, 6) 和 (0, 0) 都有不同的值,因此它正確地將所有三個元組評估為 [False, False, False]。 以實現您想要的輸出,你可以修改程式碼如下:這直接檢查每個元組中的第一個和第二個元素是否不同,從而得到預期的輸出[False, True,假]。

以上是Python 的 `any()` 和 `all()` 函數如何有效評估可迭代物件的真實性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn