Any 和 All 是 python 中提供的两个内置函数,用于连续的 And/Or。
任何
如果任何项目为真,则返回真。如果为空或全部为假,则返回 False。Any 可以被认为是对提供的可迭代对象的一系列 OR 操作。
它使执行短路,即一旦知道结果就停止执行。
语法: 任何(可迭代列表)
# 由于都是假的,所以返回假 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
项目都为真(或者如果可迭代为空),则返回真。所有这些都可以被认为是对提供的迭代的一系列 AND 操作。它还会使执行短路,即一旦知道结果就停止执行。
语法: all(可迭代列表)
# 这里所有的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
实际例子
# 此代码解释了我们如何在列表中使用“任何”功能 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('See whether at least one number is divisible by 5 in list 1=>') print(any(list2))
输出:
See whether at least one number is divisible by 5 in list 1=> True
# python 3中'all'函数的插图 # Take two lists 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('See whether all numbers in list1 are odd =>') print(all(list2))
输出:
See whether all numbers in list1 are odd => True
真值表:-