我知道我可以测试列表是否为空,如下所示:
l = []
if not l:
print("empty")
但我不明白为什么下一个代码不是等效的:
if l == False:
print("empty")
l
本身是list
类型,因此将其与布尔值进行比较将始终返回False
not l
是布尔表达式,因此它将返回True
,有时取决于l
是否为空
>>>l = []
>>>type(l)
<type 'list'>
>>>l == True
False
>>>l == False
False
>>>
>>>
>>> type(not l)
<type 'bool'>
>>> (not l) == False
False
>>> (not l) == True
True
问题内容: 这可能只是白痴,但对我来说有点混乱: 为什么在返回时返回? 问题答案: 您正在根据布尔值的文字值检查它。一样不会是真的。 如果将其投射,您将看到区别: 究其原因是真实的,因为你是比较相同的对象。与或相同。 当您看到类似的东西并且此检查从未通过时,困难就来了。那是因为您正在检查项目的 真实值 。按照惯例,所有这些项目都将通过布尔检查失败- 也就是说,它们的布尔值将为: (明显) 任何空序
嘿,好吧,所以我在阅读Python的文档,它指出任何空字符串、列表、字典,我想它们都被称为对象(我真的不理解对象的概念:\n如果有人能向我解释,我会很高兴)。无论如何,我的问题是
问题内容: 所以我有一个关于考试作业的问题,在这个作业中,我们有一堆布尔表达式,例如: 然后,我们应该编写布尔表达式的值。为此,我使用了三值逻辑,但是当您获得如下所示的布尔表达式时,这将如何应用: 或者 通过三值逻辑可以很容易地找到第一个,但是我如何找出另外两个。 我知道这是一个非常基本的问题,但是我对此仍然是陌生的。 提前致谢 问题答案: 您需要布尔值和的三相真值表: 该表是缩写,依赖于布尔逻辑
问题内容: 我有一个值列表,需要根据给定的布尔值列表中的值进行过滤: 我使用以下行生成一个新的过滤列表: 结果是: 这条线工作正常,但是(对我而言)看起来有点过大了,我想知道是否有更简单的方法来实现这一目标。 忠告 以下答案提供了两个好的建议: 1-不要像我一样命名列表,因为它是内置函数。 2-不要比较像我做的事情,因为这是不必要的。只需使用就足够了。 问题答案: 您正在寻找: 时序比较(py3.
问题内容: 语言是Java。鉴于这种: 我知道这是一个等效的测试,它将给出结果:true或false。但是,据我所知,with 是一个声明,它在这种情况下应该不返回任何内容:返回true,与test 完全相同? 你能解释为什么吗?谢谢! 问题答案: 计算结果为: 首先,您将文字分配给标识符。然后您在分配后对其进行测试
如何解释列表与NumPy数组上布尔运算和按位运算的行为差异? 我对