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

这两个python if语句是否相同?[副本]

慎风畔
2023-03-14
data = [] if data is None else list(data)
data = list(data) if data else []

有人问这两者是否相同,我更喜欢哪一个。我告诉他他们是一样的,但他似乎对答案不满意。那么,它们是不同的还是相同的,你更喜欢哪一个?

共有1个答案

袁奇逸
2023-03-14

不,它们不一样。

你可以把第一个倒过来,然后

data = list(data) if data is not None else []

vs.

data = list(data) if data else []

或者你可以把第二个倒过来

data = [] if not data else list(data)

vs.

data = [] if data is None else list(data)

所以你的问题归结为

  • 如果数据不是无,则是否与如果数据相同,或者

这些在语义上是不同的:

  • if data is No仅当data isNo
  • 为true
  • if not data是true,如果数据有任何Falsey值:例如0"False(){}[]etc.

 类似资料:
  • 问题内容: 和 第二个代码产生了一个空指针异常,该怎么做才能使下一个等效? 问题答案: 我可以看到,如果players某个自定义java.lang.Iterable的get()实现的实现被破坏,或者至少以一种异常的方式(与的行为不同),就会发生这种情况。 除此之外,我唯一能想到的就是您未在代码中向我们展示的某些内容导致了某些错误。 如果执行此操作会怎样?

  • 问题内容: 这两个查询似乎返回相同的结果。那是巧合还是真的一样? 1。 2。 有点解释:我试图从充满交易的表中获得不同的项目清单。对于每个项目,我正在寻找ItemNumber(标识字段)和最新的ItemDescription。 问题答案: 您的示例#2让我挠了一下头-我对自己说:“您不能发表任何专栏,那意味着什么?” -直到我意识到发生了什么。 当你有 你是 不是 ,尽管外表,实际上需要的不同值

  • 我有一个带有shape的numpy数组,第二个数组也带有shape。我不知道如何检查它们是否相同?示例: 1.第一: 第二: 回应:真实 2. 第一: 第二: 答复:错

  • 假设我有一组数组,包括和,我想检查它们是否相等。一般来说,我可以只使用(除了一些我现在忽略的愚蠢的情况)。 但是,这会计算的整个数组,这通常是不需要的。我的数组非常大,而且我有很多数组,两个数组相等的概率很小,所以很可能,在函数返回False之前,我只需要计算的一小部分,所以这对我来说不是一个最佳解决方案。 我尝试使用内置的函数,并结合: 然而,在两个数组相等的情况下,这似乎要慢得多,总的来说,它

  • def isSameTree(p, q): if p == None and q == None: return True elif p and q : return p.val == q.val and isSameTree(p.left,q.left) and isSameTree(p.right,q.right) else : return False

  • 嗨,我正在尝试解决Udemy练习:编写一个名为hasSharedDigit的方法,其中包含int类型的两个参数。 每个数字应在10(含)-99(含)之间。如果其中一个数字不在范围内,则该方法应返回false。 如果两个数字中都有数字,例如12和23中的2,则该方法应返回true;否则,该方法应返回false。 我一直在得到真实,而有共享数字(9,99)我无法发现为什么.. }