快速理解
对于all([a,b,c]):只有a、b、c都是True,则结果为True
描述
python内置函数all可用于判断传入的可迭代参数 iterable 中的所有元素是否都为True,如果是则返回True,反之返回False。如果可迭代对象是空的,也会返回True。
在判断元素是否为True时,只要元素不是0、空、None、False,就视为True。
函数等价于:
def all(iterable):
for element in iterable:
if not element:
return False
return True
Python 2.5 以上版本可用。
语法
all(iterable)
- 参数: iterable 是可迭代对象,通常传入的是列表或者元组
- 注意: 如果传入的是一个空列表或者空元组,all函数会返回True,
实例
# 所有值为 true
iterable = [1, 2, 3, 4]
all(iterable) # True
# 所有值为 false
iterable = [0, False]
all(iterable) # False
# 一个为 true
iterable = [0, False, 1]
all(iterable) # False
# 一个为 false
iterable = [1, 3, 4, 0]
all(iterable) # False
# 空对象
iterable = ()
all(iterable) # True
# 字符串
iterable = 'Hello'
all(iterable) # True
# 字典
d = {0: 'False', 1: 'False'}
all(d) # False
all([False, None, 0, 0.0, 0 + 0j, '', [], {}, ()])
# True
not all([False, False, False])
# False
not all([True, False, False])
# True
# 列表推导式
l = [0, 1, 2, 3, 4]
all([i > 2 for i in l])
# False
any([i > 2 for i in l])
# True
# 可以直接在生成器上使用,比列表快很多
(i > 2 for i in l)
# <generator object <genexpr> at 0x7fe33e7e3dd0>
all(i > 2 for i in l)
# False
any(i > 2 for i in l)
# True