Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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列表的所有元素是否为False_Python_List_Numpy - Fatal编程技术网

测试python列表的所有元素是否为False

测试python列表的所有元素是否为False,python,list,numpy,Python,List,Numpy,由于所有元素都是“false”,如何返回“false” 所列名单如下: data = [False, False, False] 使用: any如果iterable中有真值,将返回True。基本上有两个函数处理iterable并返回True或False,具体取决于序列元素计算的布尔值 all(iterable)如果iterable的所有元素都被视为真值(如reduce(operator.and u,iterable)),则返回True any(iterable)如果iterable中至少有一个

由于所有元素都是“false”,如何返回“false”

所列名单如下:

data = [False, False, False]
使用:


any
如果iterable中有真值,将返回True。

基本上有两个函数处理iterable并返回True或False,具体取决于序列元素计算的布尔值

  • all(iterable)
    如果
    iterable
    的所有元素都被视为真值(如
    reduce(operator.and u,iterable)
    ),则返回True

  • any(iterable)
    如果
    iterable
    中至少有一个元素是真值,则返回True(同样,使用functional stuff,
    reduce(operator.or,iterable)

  • 使用
    all
    功能,您可以将
    运算符映射到列表上,而不是映射到列表上,或者只需使用求反值构建一个新序列,并检查新序列的所有元素是否为真:

    >>> all(not element for element in data)
    
    使用
    any
    函数,您可以检查至少一个元素是否为真,然后否定结果,因为如果存在真元素,则需要返回
    False

    >>> not any(data)
    

    根据De Morgan定律,这两个变量将返回相同的结果,但我更喜欢最后一个(使用
    any
    ),因为它更短、可读性更强(并且可以直观地理解为“数据中没有真正的值”),而且效率更高(因为您不构建任何额外的序列)。

    来吧,伙计们,他要求返回True是否存在任何True。 说同样的话,当一切都是假的时候,就错了

    any(data)
    

    下面是使用生成器表达式的另一种方法:

    data = [False, False, False]
    try:
        out = next(elt for elt in data if elt) # holds the value of first non-empty element
    except StopIteration:
        print("all elements are empty")
    
    data = [[], [], [1], [2]]
    try:
        out = next(elt for elt in data if elt) # [1]
    except StopIteration:
        print("all elements are empty")
    

    @Ajay,要使用
    all
    all(数据中不是x代表x)
    注意:如果在数组中包含非布尔数据,这将不起作用。@HaroldSeefeld,试试
    不要任何([0,0,0])
    @HaroldSeefeld它会的,python可以测试所有内置类型0、[]、{}、()…等的真实性都是假非布尔数据。
    any
    解决方案一找到真实值就会停止,因此通常会更快。
    data = [False, False, False]
    try:
        out = next(elt for elt in data if elt) # holds the value of first non-empty element
    except StopIteration:
        print("all elements are empty")
    
    data = [[], [], [1], [2]]
    try:
        out = next(elt for elt in data if elt) # [1]
    except StopIteration:
        print("all elements are empty")