首頁 > 後端開發 > Python教學 > Python 的 `any()` 和 `all()` 函數在比較元組時如何表現?

Python 的 `any()` 和 `all()` 函數在比較元組時如何表現?

Barbara Streisand
發布: 2024-12-09 20:04:15
原創
591 人瀏覽過

How Do Python's `any()` and `all()` Functions Behave When Comparing Tuples?

Python 的任何和所有函數如何運作

比較元組時,any() 和 all() 內建函數都會進入玩。它們的差異如下:

any()

any() 如果迭代中至少有一個元素為Truthy(即不是False、0、 '',等等)。

all()

all(),另一方面,只有在可迭代中的每個元素都是 Truthy 時才傳回 True。

理解用例

在程式碼片段中提供:

print [any(x) and not all(x) for x in zip(*d['Drd2'])]
登入後複製

zip(*d['Drd2']) 中的每個元組別都在any(x) 而不是all(x) 的上下文中進行評估。然而,意外的 [False, False, False] 輸出引發了問題。

錯誤解釋

根據任何和全部的真值表:

any(x) all(x) any(x) and not all(x)
True False True
False True False
True True False
False False False

在這種情況下,所有元組都由相同的數字(即True 值)組成,因此any(x) 始終是True,並且all(x) 也將為True。因此,any(x) 而不是 all(x) 應始終評估為 False,這不會反映在輸出中。

錯誤原因

錯誤所在錯誤地期望 (x[0] != x[1]) 是一個 Truthy 表達式。但是,當元組中的數字相等時(例如 (1, 1)),(x[0] != x[1]) 的計算結果為 False。

正確邏輯

要準確地確定元組中的任何值是否不同,您可以使用以下命令邏輯:

print [x[0] != x[1] for x in zip(*d['Drd2'])]
登入後複製

此表達式式按預期正確比較每個元組的相應元素以識別任何差異。

以上是Python 的 `any()` 和 `all()` 函數在比較元組時如何表現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板