Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在python中将iterable转换为bool?_Python 3.x - Fatal编程技术网

Python 3.x 如何在python中将iterable转换为bool?

Python 3.x 如何在python中将iterable转换为bool?,python-3.x,Python 3.x,如何在python中将iterable转换为bool 从itertools导入重复 t=重复(真) f=重复(错误) #期望真实,实际:真实。 打印(bool(t)) #期望无穷循环或False, #事实:是的。 印刷品(bool(f)) 您必须了解itertools.repeat()中发生了什么。。该函数返回一个生成器。所以在你的例子中,可能有无穷多的布尔数。为了简化,您可以将生成器转换为列表 让我们说[真,假,真]。现在您想知道与该列表关联的布尔值。但现在你必须做出决定。如果all()值为T

如何在python中将iterable转换为bool

从itertools导入重复
t=重复(真)
f=重复(错误)
#期望真实,实际:真实。
打印(bool(t))
#期望无穷循环或False,
#事实:是的。
印刷品(bool(f))

您必须了解
itertools.repeat()中发生了什么。
。该函数返回一个生成器。所以在你的例子中,可能有无穷多的布尔数。为了简化,您可以将生成器转换为列表

让我们说[真,假,真]。现在您想知道与该列表关联的布尔值。但现在你必须做出决定。如果
all()
值为True,您想返回True,还是仅当列表中的
any()
值为True时才返回True?您可以通过
all([True,False,True])

好的,让我们回到生成器和itertools.reapeat()。因为repeat()总是重复第一个值,所以基本上会有这样的列表[True,True,True]。因此,您可以向生成器请求
next()
值,因为后面的所有值都是相同的。由于您已经生成了布尔值生成器,因此返回的值已经是布尔值,因此不需要
bool()


谢谢
any
all
是我需要的
from itertools import repeat
t = repeat(True)
f = repeat(False)

next(t)
# True
next(f)
# False