Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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/1/typescript/8.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/5/ember.js/4.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
在列表中以pythonic方式返回bool值?_Python_Boolean - Fatal编程技术网

在列表中以pythonic方式返回bool值?

在列表中以pythonic方式返回bool值?,python,boolean,Python,Boolean,我正在比较列表的第一个元素和列表的所有元素。如果有False,我需要返回False,或者如果所有的都是真的,我需要返回true。目前我正在使用if-else执行此操作。是否有任何pythonic方法返回bool值 def checker(inp): _compare = [ _==inp[0] for _ in inp] return False if False in _compare else True lst = [5, 5, 5] lst2 = [5, 5, 6]

我正在比较列表的第一个元素和列表的所有元素。如果有False,我需要返回False,或者如果所有的都是真的,我需要返回true。目前我正在使用
if-else
执行此操作。是否有任何pythonic方法返回
bool

def checker(inp):
    _compare = [ _==inp[0] for _ in inp] 
    return False if False in _compare else True

lst = [5, 5, 5]
lst2 = [5, 5, 6]

# Case 1
level = checker(inp=lst)
print(level)
True

# Case 2 
level2 = checker(inp=lst2)
print(level2)
False
任何一种pythonic的方法来实现这一点吗

return False if False in _compare else True

在_compare中的
False已经是布尔值,所以

return False not in _compare
这是最好的方法

但从更广泛的角度来看:

_==inp[0] for _ in inp
应该是

return all(x==inp[0] for x in inp)
因此,如果一个值为
False


即使项目不可散列,此解决方案也可以工作。

中的False\u compare
已经是布尔值,所以

return False not in _compare
这是最好的方法

但从更广泛的角度来看:

_==inp[0] for _ in inp
应该是

return all(x==inp[0] for x in inp)
因此,如果一个值为
False

即使项目不可散列,此解决方案也可以工作

如果列表中的所有数字都相同,如果不是False,我希望返回True

最直接的方法是:

return len(set(inp)) == 1
这确实要求值是可散列的,但简单的数字是可散列的

如果列表中的所有数字都相同,如果不是False,我希望返回True

最直接的方法是:

return len(set(inp)) == 1

这确实要求值是可散列的,但简单的数字是可散列的。

您的问题与“我需要检查列表中的所有元素是否相同”的问题相同,因为这两个问题在完全相同的情况下都是正确的。所以你也可以这样解决:

def checker(inp):
    return len(set(inp)) == 1
如果这是最具蟒蛇风格的方式。。我不知道

编辑:对于不可损坏的项目,可选择:

def checker(inp):
    return not [True for i in range(len(inp) - 1)) if [inp[i] != inp[i+1]]

您的问题与“我需要检查列表中的所有元素是否相同”的问题相同,因为这两个问题在完全相同的情况下都是正确的。所以你也可以这样解决:

def checker(inp):
    return len(set(inp)) == 1
如果这是最具蟒蛇风格的方式。。我不知道

编辑:对于不可损坏的项目,可选择:

def checker(inp):
    return not [True for i in range(len(inp) - 1)) if [inp[i] != inp[i+1]]


只要在_compare
False,试着用一种更简单的方式陈述你的问题:你想知道列表中的所有项目是否相同,列表是否同质?是@deceze如果列表中的所有数字都相同,我想返回True如果不是False只是在_compare
中返回False尝试以更简单的方式陈述您的问题:您想知道列表中的所有项目是否相同,列表是否同质?是@deceze如果列表中的所有数字都相同,我想返回True如果不是False
在_compare
中返回False给我布尔值的相反值。案例1返回False,案例2返回True
False不在_compare
中,然后…是的,谢谢,我不确定双重否定没有任何作用。
在_compare
中返回False给了我与布尔值相反的值。案例1返回False,案例2返回True
False不在_compare
中,然后…是的,谢谢,我不确定双重否定没有任何作用。您假设列表项是可散列的。@chepner washible,您可以说服我这是一个实数项,它可能会捕获onStupid autocorrect;)@补充了切普纳替代方案。关于pythonicity的评论?=)
any(inp[i]!=inp[i+1]表示范围内的i(len(inp)-1))
会更简单,但我会选择它。您假设列表项是可散列的。@chepner washible,您可以说服我这是一个实数项,它可能会捕捉到tupid autocorrect;)@补充了切普纳替代方案。关于pythonicity的评论?=)
any(inp[i]!=inp[i+1]表示范围内的i(len(inp)-1))
会更简单,但我会选择它。