当前位置: 首页 > 知识库问答 >
问题:

字典真值检验[复本]

端木冷勋
2023-03-14
>>> dict = {}
>>> a=2
>>> if a is not None and dict is None:
...     print("lol")
... else:
...     print(" Print result is a")
... 
   result is a

为什么第一个if语句没有运行?我正在指定dict为空,并且“a”`存在。

参考:https://docs.python.org/2/library/stdtypes.html#truth-value-testing

共有2个答案

孟谭三
2023-03-14

因为字典不是none

值是falsey和它满足是none是有区别的。

直接测试真假即可:

if a is not None and not dict:

但是,正如注释中所指出的,不要将变量的名称与现有的函数名称相同。这只是要求将来出现'dict'对象不可调用错误。

宿楚青
2023-03-14

我正在指定该dict为空,并且“a”存在。

不,你不是。您正在测试A是否与none(true)不相同,以及{}是否与none(false)相同。

您想要的是A而不是D。您几乎从来不想与布尔值进行比较,当然也从来不想使用is进行比较。

 类似资料:
  • rank ▲ ✰ vote url 11 867 379 1107 url 用字典的值对字典进行排序 我有个字典,字典的值来自于数据库:一个是字符串,一个是数字.字符串是唯一的,所以键就是字符串. 我可以用键来排序,但是怎么用值来排序呢? 注:我已经看过另一个问题怎样对列表中的字典的键值对字典进行排序?,或许这种方法可以,但是我确实只需要一个字典,我想看看还有其他更好的方法. 对字典进行排序是不可

  • 问题内容: 我习惯于Python的defaultdict的一种模式是字典,如果未显式设置给定键的值,则该字典将返回默认值。尝试在Swift中做到这一点有点冗长。 我意识到我可以创建一个做到这一点的类,但是随后必须通过属性访问实际的Dictionary才能使用其他任何普通的Dictionary方法 有更好的模式吗? 问题答案: 使用Swift 2,您可以实现类似于python版本的扩展名: 后面的闭

  • 问题内容: 我有一本将近100,000个(键,值)对的字典,大多数键都映射到相同的值。例如: 我想要做的是反转字典,以便in中的每个值都将成为的键,并且将映射到所有用于映射到in中的值的列表。因此,根据以上示例,我将得到: 我想出了一个非常昂贵的解决方案,并且我想听听比这更有效的方法的想法: 问题答案: 使用:

  • 问题内容: 我知道在python中,任何东西,无论是数字,字符串,字典还是其他任何东西都是对象。变量名只是指向内存中的对象。现在根据这个问题, 这将创建一个空字典,并且所有变量都指向该dict对象。因此,更改任何一个都会反映在其他变量中。 会给 我已经了解了指向对象的变量的概念,因此这似乎很公平。 现在,尽管它很奇怪,但由于它是这样的基本声明,为什么会发生这种情况? 问题的第一部分: 为什么这里不

  • 这里对python非常陌生。如何将很长的字典值拆分为两行,同时在使用print()输出时仍显示为一行?请参见下面的代码。 我尝试过使用三重引号(即“”),但没有成功,因为我认为从技术上讲,值不是字符串。

  • 大家好,假设我想用字典替换一个大的el-ifs语句。简化版本如下: 所以a1将是一个字符串('case1'或'case2'或...),问题是在某些情况下,a3可能是0,所以结果字典无法定义(在所有这些情况下,a1都不是'case1')。例如: 所以在第二种情况下,我期望1,但我得到了一个错误。 一种可能的解决办法是: 由于我有一个复杂计算的多个案例,有没有更好的解决方案?