📜  Python 中的any和all

📅  最后修改于: 2020-07-15 05:30:21             🧑  作者: Mango

Any和All是python提供的两个内置插件,用于连续的And / Or。

Any
如果任何一项为True,则返回true。如果为空或全部为假,则返回False。可以将任何内容视为对提供的可迭代对象进行的一系列OR操作。
它将执行短路,即一旦知道结果就立即停止执行。

语法: any(list of iterables)

# 由于所有均为假,因此返回false 
print (any([False, False, False, False])) 
  
# 在这里,该方法将在第二项(True)处短路并返回True. 
print (any([False, True, False, False])) 
  
# 此处方法将在第一个(True)短路并返回True. 
print (any([True, False, False, False]))

输出:

False
True
True

All

如果所有项目均为True(或iterable为空),则返回true。可以将所有内容视为对提供的可迭代对象的一系列AND操作。这还会使执行过程短路,即一旦知道结果就立即停止执行。

语法:all(list of iterables) 

# 这里所有可迭代的变量都为True,所以所有的迭代器都将返回True,并打印相同的结果 
print (all([True, True, True, True])) 
  
# 在这里,该方法将在第一个项目(False)处短路并返回False。 
print (all([False, True, True, False])) 
  
# 该语句将返回False,因为在可迭代对象中找不到True 
print (all([False, False, False]))

输出: 

True
False
False

实际例子 

# 这段代码说明了如何使用列表中的“ any"功能  
list1 = [] 
list2 = [] 
  
# 索引范围是1到10 
for i in range(1,11): 
    list1.append(4*i)  
  
# 访问list2的索引是从0到9 
for i in range(0,10): 
    list2.append(list1[i]%5==0) 
  
print('查看列表1中是否至少有一个数字可以被5整除=>') 
print(any(list2)) 

输出: 

查看列表1中是否至少有一个数字可以被5整除=>
True

 

# python 3中“ all"函数
  
# 两个list  
list1=[] 
list2=[] 
  
# list1中的所有数字均采用以下格式:4 * i-3 
for i  in range(1,21): 
    list1.append(4*i-3) 
  
# list2将奇数信息存储在list1中 
for i in range(0,20): 
    list2.append(list1[i]%2==1) 
  
print('查看list1中的所有数字是否均为奇数=>') 
print(all(list2)) 

输出: 

查看list1中的所有数字是否均为奇数=>
True

 真值表: