當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓或連通域分析時,沒有剛好的特徵可能就會有List含(空值得)形式出現。
為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。
all
和 any
是 Python 中用於檢查可迭代物件(如清單、元組、集合等)中元素的方法,它們有不同的用途:
all
方法:pythonCopy codemy_list = [True, True, False]
print(all(my_list)) # False,因為有一個元素為 False
any
方法:pythonCopy codemy_list = [False, False, True]
print(any(my_list)) # True,因為有一個元素為 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 : 空值")