Python函数any()和all()的用法及区别介绍

  • Post category:Python

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()的用法及区别的详细介绍。