首頁 > 後端開發 > Python教學 > Python 的「any」和「all」函數如何在列表理解中運作,為什麼會回傳「[False, False, False]」?

Python 的「any」和「all」函數如何在列表理解中運作,為什麼會回傳「[False, False, False]」?

Patricia Arquette
發布: 2024-12-10 01:19:13
原創
548 人瀏覽過

How Do Python's `any` and `all` Functions Work in List Comprehension, and Why Might This Return `[False, False, False]`?

理解Python的any和all函數

Python的any和all是內建函數,它們評估可迭代物件並根據他們的真實性elements.

any

any如果迭代中至少有一個元素為 True(或數值非零),則傳回 True。它評估可迭代對象,直到遇到 True 值或所有元素都已耗盡。

all

all 僅當可迭代物件中的所有元素均為 True 時才傳回 True。如果 iterable 為空,則 all 傳回 True。它會繼續評估可迭代對象,直到遇到 False 值或檢查了所有元素。

真實性

理解真實性對於理解任何和所有元素的工作方式至關重要。在 Python 中,如果值不為零、空字串或 None(空),則將其視為 True。 Falsey 值包括 0、空容器和 False 本身。

您的程式碼

在您的程式碼中,您正在使用清單理解:

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

為了理解這個表達式,我們來理解這個表達式,我們來理解這個表達式打破它down:

  • zip(*d['Drd2']):透過對d['Drd2'] 中不同清單中的對應元素進行分組以建立元組清單。
  • for x in zip(*d['Drd2']): 迭代建立的清單中的元組元組。
  • any(x):評估給定元組中的任何元素是否為 True。
  • not all(x):評估給定元組中的所有元素是否為 True。
  • and:結合前面表達式的結果。

為什麼False 是回傳

您的程式碼回傳[False, False, False],因為它檢查是否至少有一個值為True,同時對於元組清單中的每個元組,並非所有值都為True。由於 d['Drd2'] 中的元組具有相同的元素,因此每個元組的 all(x) 都為 True,而不是 all(x) 為 False。因此,對於每個元組,整體表達式變為 any(x) 且並非 all(x) 計算結果為 False。

以上是Python 的「any」和「all」函數如何在列表理解中運作,為什麼會回傳「[False, False, False]」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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