这两个python if语句是否相同?

这两个python if语句是否相同?,python,Python,有人问这两者是否相同,我更喜欢哪一个。我告诉他他们是一样的,但他似乎对答案不满意。那么,它们是不同的还是相同的,你更喜欢哪一个呢?不,它们不一样 你可以把第一个倒过来,然后 data = list(data) if data else [] vs 或者你可以把第二个倒过来 data = list(data) if data else [] vs 所以你的问题归结为 如果数据不是无,则是否与如果数据相同,或者 如果数据为无,则是否与如果不是数据相同 这些在语义上是不同的: 如果数据为无仅

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

不,它们不一样

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

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

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

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

所以你的问题归结为

  • 如果数据不是无,则
    是否与
    如果数据相同,或者
  • 如果数据为无,则
    是否与
    如果不是数据
    相同
这些在语义上是不同的:

  • 如果数据为无
    仅当数据为
    时才为真
  • 如果不是数据
    如果数据有任何“假”值,则为真:e。g<代码>无
    0
    {}
    []

请看最后一行看起来像我的答案。Thank'resp.'在英语中没有使用,如果你想用它作为德语'bzw'的等价物。你能不用它重写你的答案吗?
data = list(data) if data is not None else []
data = list(data) if data else []
data = [] if not data else list(data)
data = [] if data is None else list(data)