Python 教程之运算符(7)—— Any All

1,462 阅读2分钟

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第14篇文章,点击查看活动详情

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

真值表:-

image.png