欢迎访问宙启技术站
智能推送

Python中如何使用any()和all()函数?

发布时间:2023-07-01 11:19:06

any()all()是Python内置函数,用于对一个可迭代对象进行判断。

any()函数接受一个可迭代对象作为参数,如果其中至少有一个元素的布尔值为True,则返回True;否则返回False。例如:

>>> any([False, True, False])
True
>>> any([False, False, False])
False

在上面的例子中,可迭代对象是一个包含三个元素的列表。其中第二个元素的布尔值为True,所以返回True;而 个元素和第三个元素的布尔值都为False,所以返回False。

all()函数与any()函数的使用方式类似,但它要求可迭代对象中的所有元素的布尔值都为True,才返回True;否则返回False。例如:

>>> all([True, True, True])
True
>>> all([True, False, True])
False

在上面的例子中, 个可迭代对象的所有元素的布尔值都为True,所以返回True;而第二个可迭代对象的第二个元素的布尔值为False,所以返回False。

下面是一些使用any()all()函数的示例:

1. 判断列表中是否有大于10的元素:

>>> nums = [5, 8, 12, 3, 7, 9]
>>> any(num > 10 for num in nums)
True

2. 判断字符串列表中的所有元素是否都以'py'开头:

>>> words = ['python', 'pycharm', 'pytorch']
>>> all(word.startswith('py') for word in words)
True

3. 判断字典中是否有值为None的键值对:

>>> student = {'name': 'Alice', 'age': 20, 'grade': None}
>>> any(value is None for value in student.values())
True

4. 判断二维列表中是否有空列表:

>>> matrix = [[1, 2], [], [4, 5, 6]]
>>> any(not row for row in matrix)
True

需要注意的是,any()all()函数对于空的可迭代对象都会返回False。也就是说,当可迭代对象中没有任何元素时,any()函数返回False,all()函数返回True。例如:

>>> any([])
False
>>> all([])
True