python中 any()和all() 方法
目录
可以用来判断 值是否为空.
any 只要iterable 中有一个为真, 则返回真. all 有一个 为假 ,返回假.
all(iterable)
all() 函数用于判断给定的可迭代参数 iterable
中的所有元素是否不为 0、''、False 或者 iterable 为空,
如果是返回 True,否则返回 False。
1. 来看一个例子
# 简单来说 如果每个元素都是有值的,返回True
names = ('name', 'laoda', 'laoer',)
names2 = ('name', 'laoda', 'laoer', False)
names3 = ('name', 'laoda', 'laoer', [])
print(all(names)) # True
print(all(names2)) # False
print(all(names3)) # False
any(iterable)
any() 函数用于判断给定的可迭代参数 iterable
是否全部为空对象,如果都为空、0、false,则返回 False,
如果不都为空、0、false,则返回 True. 有一个不为空返回True
2 . 来看一下例子
# 简单来说,有一个不为空,返回True
names = ('frank', 'lijiaxuan', 'weiliang', 'lile', ' ')
defaults = ('', None, [], (), False,)
hobbys = ['name', False, [], (), ]
print(any(names)) # True
print(any(defaults)) # False
print(any(hobbys)) # True
day20201204 补
关于 any 和all 的使用,有一个特殊情况,就是传入值为空的可迭代对象。all 返回真, any 返回假。 看下面详细 解释。
any() 相当于下面的用法
如果 `any(iterable)` 中可迭代对象有值的情况下,如果有一个为真,则返回真值。 如果可迭代对象**没有值**则返回 假值
def any(iterable):
for element in iterable:
if element:
return True
return False
如果 `any(iterable)` 中 可迭代对象是空的, 那么默认返回 False ,这一点要注意。
all() 相当于下面的用法
如果 `all(iterable)` 中可迭代对象有值的情况下,如果有一个为假,则返回假值。 如果可迭代对象**没有值**则返回 真值
def all(iterable):
for element in iterable:
if not element:
return False
return True
如果 `all(iterable)` 可迭代对象是空的, 那么默认返回 True ,这一点要注意。
所以 对于 对于空值的可迭代对象, `all([])` 就为真值, `any([])` 为假值。
而 `all([[]])` 对于 列表中嵌套一个列表, 相当于可迭代对象 有一个值,有一个空值,而 all 的判断 如果有一个为假,则返回 假值。
>>> all([])
True
>>> all([[]])
False
>>> all([0])
False
总结
any 一般判断 是否值全部为空,0,false 这种情况.
any 判断iterable 全为空 返回False
有一个为真, 返回 真 True
all 一般判断 所有元素 都不为空, 返回 True
有一个假,返回假. python 中的'假' ,包含 {} [] , 0 false () ,''
参考链接
分享快乐,留住感动. '2018-05-26 10:18:52' --frank
分享快乐,留住感动. '2020-12-04 22:33:53' --frank