【发布时间】:2020-03-26 07:56:08
【问题描述】:
data = [] if data is None else list(data)
data = list(data) if data else []
有人问这两个是否相同,我更喜欢哪一个。我告诉他他们是一样的,但他似乎对答案并不满意。那么,它们是不同的还是相同的,你更喜欢哪一个?
【问题讨论】:
标签: python
data = [] if data is None else list(data)
data = list(data) if data else []
有人问这两个是否相同,我更喜欢哪一个。我告诉他他们是一样的,但他似乎对答案并不满意。那么,它们是不同的还是相同的,你更喜欢哪一个?
【问题讨论】:
标签: python
不,它们不一样。
你可以颠倒第一个,然后你有
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)
所以你的问题归结为
if data is not None 是否与if data 相同或替代if data is None 是否与if not data 相同。这些在语义上是不同的:
if data is None 仅在数据为 None 时为真,if not data 为真:e。 G。 None、0、""、False、()、{}、[]等【讨论】: