2024-03-29 12:32:16 发布
网友
问题是关于流行的肾盂功能。你知道吗
a = True b = True print(all([a, b]))
为什么不使用*args?所以看起来是这样的:
*args
a = True b = True print(all(a, b))
当我们能够将参数传递给*args时,这里的列表似乎是多余的。你知道吗
all表示已经有iterable的情况。如果有两个单独的布尔值,那就是and的工作:
all
and
print(a and b)
使all采用*args而不是iterable将强制实现输入,即使在False结果可能提前返回的情况下,或者当输入iterable的元素太多而无法将所有元素都保存在内存中时也是如此。你知道吗
False
from itertools import repeat def starargs_all(*booleans): return all(booleans) print(all(repeat(False, 10**10))) # prints immediately print(starargs_all(*repeat(False, 10**10))) # takes a while, uses lots of memory, awkward *
因为all()与任何iterable一起工作,而不仅仅是列表。例如:
all()
def makeGen(): i = 1 while i <= 10: yield i i = i + 1 all(makeGen())
all
表示已经有iterable的情况。如果有两个单独的布尔值,那就是and
的工作:使
all
采用*args
而不是iterable将强制实现输入,即使在False
结果可能提前返回的情况下,或者当输入iterable的元素太多而无法将所有元素都保存在内存中时也是如此。你知道吗因为
all()
与任何iterable一起工作,而不仅仅是列表。例如:相关问题 更多 >
编程相关推荐