最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年04月14日 17:01:13   作者:pythontip?  
這篇文章主要介紹了Python中的 any() 函數(shù)和 all() 函數(shù),文章基于Python的相關(guān)資料展開對 any 和 all() 函數(shù)的語法詳細內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下

回想下,在 Python 中編程時,你是否曾經(jīng)需要檢查某個可迭代對象(如列表)中的任何元素或所有元素的計算結(jié)果是否為True?

假設(shè),我們要判斷數(shù)字列表a的所有數(shù)字是否都大于0,此時你估計會這么干:

a = [1, 2, 3, 4]


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


print(a)

停頓幾秒,想一想,假設(shè)下次我們要判斷其他條件,如每個元素都是偶數(shù)或奇數(shù)?難道每次都要寫一個函數(shù)然后for循環(huán)遍歷嗎?

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

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

Python 中的布爾數(shù)據(jù)類型

在學習 any() 和 all() 之前,先快速回顧一下 Python 中的布爾數(shù)據(jù)類型。你可以在任何 Python 對象上調(diào)用 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
  • 數(shù)字零(0)——整數(shù)、浮點數(shù)和 0 的復(fù)數(shù)表示——都是 False
  • 所有空的可迭代對象(如列表、元組和字符串)的真假值為 False

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

請記?。?strong>所有非零值和非空可迭代對象都為True,這是相當直觀的!

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

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

?? 語法 :any(iterable)

  • 對于迭代中的任何 x,如果 bool(x) 是 True,返回 True
  • 如果迭代是空,返回 False

因此,any() 函數(shù)將一個可迭代對象作為參數(shù),只要該可迭代對象中至少有一項為 True,就返回 True

下面是一些簡單的例子來驗證 any() 函數(shù)是如何工作的:

list_1 = [0, 0, 0, 1, 0, 0, 0, 0]
# any(a list with at least one non-zero entry) returns True
print(any(list_1))
# Output True

list_2 = [0j, 0, 0, 0.0, 0, 0, 0.0, 0]
# any(a list of zeros) returns False
print(any(list_2))
# Output False

list_3 = [True, False, False]
# any(a list with at least one True value) returns True
print(any(list_3))
# Output True

list_4 = ["", "", "code more"]
# any(a list with at least one non-empty string) returns True
print(any(list_4))
# Output True

list_5 = ["", "", ""]
# any(a list of empty strings) returns False
print(any(list_5))
# Output False

如何用any() 函數(shù)檢查字符串中的數(shù)字

現(xiàn)在讓我們使用 any() 函數(shù)來檢查字符串中是否有任何數(shù)字。讓我們把步驟寫下來:

  • 檢查:字符串中是否有任何數(shù)字
  • 遍歷字符串以訪問字符串中的每個字符
  • 通過調(diào)用 isdigit() 方法檢查每個字符是否是數(shù)字
  • 如果被測字符是數(shù)字,則 isdigit() 返回 True,否則返回 False

列表推導式(list comprehension)對于在列表中收集所有這些真假值非常有幫助。這是一個快速回顧:

# 列表推導式
 [output_expression for every_item in an_iterable]
     |
     |
     V
    result of doing something on each item in the iterable
    
 # 本質(zhì)上,循環(huán)遍歷迭代,對每一項進行操作,然后返回操作的結(jié)果。

如下面的代碼片段所示,我們的示例字符串 coding**is**cool**345 包含數(shù)字。

因此,對字符串調(diào)用 any() 函數(shù)應(yīng)該返回 True。我們使用列表推導式來根據(jù)字符是否為數(shù)字來獲取 True 和 False 值的列表。

my_string = "coding**is**cool**345"
# 列表推導
are_there_digits = [char.isdigit() for char in my_string]
# 調(diào)用any函數(shù)
print(any(are_there_digits))

# 輸出 True

請注意 are_there_digits 是一個列表,其項數(shù)與字符串的長度一樣多。

對于字符串中的每個字符,都有一個對應(yīng)的真假值——如果字符是數(shù)字,則為 True,如果字符不是數(shù)字,則為 False,如下所示:

my_string = "coding**is**cool**345"
# 列表推導
are_there_digits = [char.isdigit() for char in my_string]
print(are_there_digits)
# Output
# [False, False, False, False, False, False, False, False, False, False, False,
# False, False, False, False, False, False, False, True, True, True]

如何用any()函數(shù)檢查字符串中的字母

讓我們再舉一個類似的例子。這一次,讓我們檢查字符串中的字母。

被測試的字符串***456278)))是不包含字母的 -- 調(diào)用 any() 會按預(yù)期返回 False。對于字符串中的每個字符,調(diào)用 isalpha() 方法檢查它是否是一個字母。

my_string = "***456278)))"
num = [char.isalpha() for char in my_string]
print(any(num))

# Output False

如何用any()函數(shù)將多個條件與邏輯 OR 組合在一起

假設(shè)你有 N 個條件 c1c2、c3...cN,考慮下面的偽代碼:

if c1 or c2 or ... c_(N-1) or CN:
    # DO THIS
    pass
else:
    # DO THIS
    pass

你現(xiàn)在可以將所有這些條件收集在一個可迭代對象中,例如列表或元組,然后對該可迭代對象調(diào)用 any() 以檢查一個或多個條件是否為 True,如下所示。是不是很簡單? ??

conditions = [c1, c2, ..., c_N]
if any(conditions):
    # DO THIS
    pass
else:
    # DO THIS
    pass

如何使用 all() 函數(shù)

讓我們從 all() 函數(shù)的語法開始:

?? 語法:all(iterable)

  • 如果 bool(x) 對于可迭代對象中的所有值 x 為 True,則返回 True
  • 如果可迭代對象為空,則返回 True。

all() 函數(shù)接受一個可迭代對象作為參數(shù),僅當可迭代對象中的所有項的計算結(jié)果為 True,或可迭代對象為空時才返回 True。在所有其他情況下,all() 函數(shù)返回 False。

如何用all()函數(shù)檢查字符串中的字母

讓我們以類似的例子來檢查字符串的某些特征。

測試字符串 coding**is**cool 除了字母之外還包含特殊字符 *。因此,當我們使用 all() 函數(shù)檢查字符串中的所有字符是否都是字母時,我們應(yīng)該得到 False

my_string = "coding**is**cool"
are_all_letters = [char.isalpha() for char in my_string]
print(all(are_all_letters))
# Output False

print(are_all_letters)
# Output
# [True, True, True, True, True, True, False, False, True, True, False, False,
# True, True, True, True]

請注意列表 are_all_letters 如何在字符串中出現(xiàn) * 的所有位置都有 False 值。

如何用all()函數(shù)檢查字符串中的數(shù)字

現(xiàn)在讓我們使用 all() 函數(shù)檢查字符串中的所有字符是否都是數(shù)字。測試字符串 56456278 僅包含數(shù)字,因此,調(diào)用 all() 應(yīng)該返回 True,因為列表推導式為我們提供了一個 True 值列表。

my_string = "56456278"
are_all_digits = [char.isdigit() for char in my_string]
print(all(are_all_digits))
# Output True

print(are_all_digits)
# Output [True, True, True, True, True, True, True, True]

如何用Pythonall()函數(shù)用邏輯 AND 組合多個條件

假設(shè)你有 N 個條件 c1、c2、c3...cN,考慮下面的偽代碼:

if c1 and c2 and ... c_(N-1) and CN:
    # DO THIS
    pass
else:
    # DO THIS
    pass

你可以使用 all() 函數(shù)通過收集迭代中的條件,然后在迭代上調(diào)用 all() 函數(shù)來使這一切變得更加簡潔。

conditions = [c1, c2, ..., c_N]

if all(conditions):
    # DO THIS
    pass
else:
    # DO THIS
    pass

到此這篇關(guān)于Python中的 any() 函數(shù)和 all() 函數(shù)的文章就介紹到這了,更多相關(guān) any 和 all() 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在python中調(diào)用C/C++的三種方法

    在python中調(diào)用C/C++的三種方法

    這篇文章主要給大家介紹了關(guān)于在python中調(diào)用C/C++的三種方法,Python可以通過調(diào)用C/C++接口來實現(xiàn)與C/C++語言的交互,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • Python開發(fā)工具Pycharm的安裝以及使用步驟總結(jié)

    Python開發(fā)工具Pycharm的安裝以及使用步驟總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Python開發(fā)工具的安裝以及使用的相關(guān)知識,文章圍繞著如何使用和安裝Pycharm展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 遺傳算法之Python實現(xiàn)代碼

    遺傳算法之Python實現(xiàn)代碼

    本篇文章主要介紹了Python 遺傳算法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • python SQLAlchemy 中的Engine詳解

    python SQLAlchemy 中的Engine詳解

    這篇文章主要介紹了python SQLAlchemy 中的Engine詳解,Engine 翻譯過來就是引擎的意思,汽車通過引擎來驅(qū)動,而 SQLAlchemy 是通過 Engine 來驅(qū)動,Engine 維護了一個連接池(Pool)對象和方言(Dialect),需要的朋友可以參考下
    2019-07-07
  • 詳解Python中鍵盤鼠標的相關(guān)操作

    詳解Python中鍵盤鼠標的相關(guān)操作

    pyautogui模塊,規(guī)范一點大寫就是PyAutoGUI模塊,是用來實現(xiàn)自動化腳本的一個十分得力的小助手。他可以操控鍵盤和鼠標,可以寫許多工具。本文就來講講如何利用這個模塊實現(xiàn)鍵盤鼠標的相關(guān)操作,需要的可以參考一下
    2023-01-01
  • Python+Selenium實現(xiàn)自動填寫問卷

    Python+Selenium實現(xiàn)自動填寫問卷

    這篇文章主要介紹了如何利用Python Selenium實現(xiàn)自動填寫問卷功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-03-03
  • 在macOS上搭建python環(huán)境的實現(xiàn)方法

    在macOS上搭建python環(huán)境的實現(xiàn)方法

    今天小編就為大家分享一篇在macOS上搭建python環(huán)境的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python寫入并獲取剪切板內(nèi)容的實例

    python寫入并獲取剪切板內(nèi)容的實例

    今天小編就為大家分享一篇python寫入并獲取剪切板內(nèi)容的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python如何讀取相對路徑文件

    Python如何讀取相對路徑文件

    這篇文章主要介紹了Python如何讀取相對路徑文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 快速入門python學習筆記

    快速入門python學習筆記

    給大家分享一下python的一周快速學習入門的筆記,如果你希望最快速度學習python,這個非常適合你。
    2017-12-12

最新評論

日照市| 民权县| 永泰县| 桦甸市| 梧州市| 务川| 北宁市| 双桥区| 五家渠市| 南陵县| 丽江市| 崇信县| 宁陕县| 那曲县| 兴山县| 永兴县| 平南县| 大邑县| 广汉市| 海口市| 楚雄市| 永顺县| 洪江市| 治县。| 长丰县| 巴林左旗| 黑龙江省| 托克托县| 辽阳市| 都兰县| 清原| 崇左市| 奉化市| 绥化市| 勐海县| 广昌县| 无极县| 宕昌县| 微山县| 托克逊县| 祁阳县|