Python函数any()
和all()
都是用来判断一个iterable对象中的元素是否满足某一条件。
any()
any()
函数返回一个布尔值,如果传入的可迭代对象中任一元素为真,则返回True,否则返回False。例如:
>>> any([0, False, None, '', [], {}, 1])
True
>>> any([0, False, None, '', [], {}])
False
第一个示例中,列表中第七个元素1为True,因此返回True。而在第二个示例中,列表中所有元素都为False或空,因此返回False。
all()
all()
函数也返回一个布尔值,它会判断传入的可迭代对象中的所有元素是否都为真,只有所有元素都为真,all()
才返回True,否则返回False。例如:
>>> all([1, True, 'hello'])
True
>>> all([1, False, 'hello'])
False
第一个示例中,列表中所有元素都为True或非空,因此返回True。而在第二个示例中,列表中第二个元素为False,因此返回False。
以上两个函数的区别在于,any()
只要传入的可迭代对象中有一个元素为真,就返回True,而all()
需要判断所有元素都为真才会返回True。
除此之外,它们的参数也有所不同。any()
可以接受任何可迭代对象作为参数,而all()
只接受序列类型的可迭代对象,比如列表、元组、字符串等。
下面是一个示例:
>>> s = 'Python'
>>> all(c.isalpha() for c in s)
True
此示例中,all()
函数用于检查字符串s
中的所有字符是否都是字母。c.isalpha()
的返回值为布尔值,如果s
中有非字母字符,则all()
函数会返回False。
这就是关于Python函数any()
和all()
的用法及区别的详细介绍。