Python代碼閱讀--列表元素邏輯判斷
1、every
def every(lst, fn=lambda x: x): return all(map(fn, lst)) # EXAMPLES every([4, 2, 3], lambda x: x > 1) # True every([1, 2, 3]) # True
every 用于判斷列表 lst 中的元素是否都符合給定的判斷條件 fn 。
代碼中首先使用 map 返回一個(gè)迭代器,該迭代器會將判斷條件 fn 應(yīng)用于所有的列表元素上。然后使用 all 函數(shù)判斷迭代器中的元素是否都為 True 。
all(iterable) 接收一個(gè)可迭代對象,如果這個(gè)對象中的所有元素都為 True ,則函數(shù)返回 True 。注意,當(dāng)該對象為空時(shí),也返回 True 。該函數(shù)等價(jià)于:
def all(iterable): for element in iterable: if not element: return False return True
2、some
def some(lst, fn=lambda x: x): return any(map(fn, lst)) # EXAMPLES some([0, 1, 2, 0], lambda x: x >= 2 ) # True some([0, 0, 1, 0]) # True
some 用于判斷列表 lst 列表中是否存在符合給定的條件 fn 的元素。
代碼中首先使用 map 返回一個(gè)迭代器,該迭代器會將判斷條件 fn 應(yīng)用于所有的列表元素上。然后使用 any 函數(shù)判斷迭代器中是否至少有一個(gè)元素為 True 。
any(iterable) 接收一個(gè)可迭代對象,如果這個(gè)對象中有任一元素為 True ,則函數(shù)返回 True 。注意,當(dāng)該對象為空時(shí),返回 False 。該函數(shù)等價(jià)于:
def any(iterable): for element in iterable: if element: return True return False
3、none
def none(lst, fn=lambda x: x): return all(not fn(x) for x in lst) # EXAMPLES none([0, 1, 2, 0], lambda x: x >= 2 ) # False none([0, 0, 0]) # True
none 用于判斷列表 lst 中的元素是否都不符合給定的判斷條件 fn 。
代碼中首先使用生成器表達(dá)式生成一個(gè)生成器,該生成器會將判斷條件 not fn 應(yīng)用于所有的列表元素上。然后使用 all 函數(shù)判斷迭代器中的元素是否都為 True 。
lst = [0, 1, 2, 0] def fn(x): return x >= 2 type(not fn(x) for x in lst) # <class 'generator'>
到此這篇關(guān)于Python代碼閱讀--列表元素邏輯判斷的文章就介紹到這了,更多相關(guān)Python 列表元素邏輯判斷內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信