具有空列表均值的三元运算符评估顺序

时间:2015-09-28 02:09:11

标签: python numpy ternary-operator mean

>>> from numpy import mean
>>> mylist = []
>>> mean(mylist) if mylist is not [] else None
nan

我认为测试应该首先在三元运算符中进行评估。我期待None。为什么我会改为nan

修改:为什么空列表与[]完全相同?

1 个答案:

答案 0 :(得分:5)

测试

mylist is not []

不会检查mylist是否为空。它检查它是否与另一个空列表完全相同。

你应该使用:

mean(mylist) if mylist else None