2024-04-29|閱讀時間 ‧ 約 24 分鐘

[Python基礎]檢查列表是否為空值使用any或all

當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓連通域分析時,沒有剛好特徵可能就會有List含(空值得)形式出現。

為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。


allany 是 Python 中用於檢查可迭代物件(如清單、元組、集合等)中元素的方法,它們有不同的用途:

  1. all 方法:
    pythonCopy codemy_list = [True, True, False]
    print(all(my_list)) # False,因為有一個元素為 False
    • 用法:all(iterable)
    • 功能:檢查可迭代物件中的所有元素是否都為真(True)。
  2. any 方法:
    pythonCopy codemy_list = [False, False, True]
    print(any(my_list)) # True,因為有一個元素為 True
    • 用法:any(iterable)
    • 功能:檢查可迭代物件中的任何元素是否為真(True)。

在使用這兩個方法時,需要確保可迭代物件中的元素是布林值或可轉換為布林值的,否則可能會出現錯誤。


檢查列表是否為空值

那如何檢查列表是否為空值呢,讓我們一起使用any與all倆個函式來試試看結果吧。

print('---------any 函式 ----------')
any_list = []

if any(any_list):
print('任一元素為true')
else:
print('空值')

print('---------all 函式 ----------')
all_list = []

if all(all_list):
print('所有元素為true')
else:
print('空值')

為什麼用All函式,既然會是True ??? 它不是全部要為真才是真嗎?

終端機結果

原因是

all_list是空列表時,all(all_list) 會返回 True。

這是因為空列表在布林上下文中被視為 False,但 all 方法在空列表上的結果是 True。讓我來澄清一下關於 all 方法的用法:

  • all(iterable):只有當可迭代物件中至少有一個元素為假(False)或不可轉換為真時,才會返回 False。
#空值,整數,字串
all_list = [None,1,'1']

if all(all_list):
print('所有元素為true')
else:
print('有元素為False')

終端機輸出

其他檢查可迭代物件是否為空值的辦法

None_list = []
None_dit = {}
None_tuple = ()

if len(None_list) == 0:
print("None_list : 空值")

if not None_list:
print("None_list : 空值")

if len(None_dit) == 0:
print("None_dit : 空值")

if not None_dit:
print("None_dit : 空值")

if len(None_tuple) == 0:
print("None_tuple : 空值")

if not None_tuple:
print("None_tuple : 空值")

終端機輸出



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.