Python - 分配无或值

时间:2017-03-19 14:28:51

标签: python-2.7

是否有一种简短的方法可以在变量中指定None或值,具体取决于值?

x= value if value!= 999 else None

2 个答案:

答案 0 :(得分:3)

  

result =(on_false,on_true)[condition]

declare @fromdate date = '20160101';
declare @years    int  = 1;
;with n as (select n from (values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) t(n))
, dates as (
  select top (datediff(day, @fromdate,dateadd(year,@years,@fromdate)))
      [Date]=convert(date,dateadd(day,row_number() over(order by (select 1))-1,@fromdate))
  from n as deka cross join n as hecto cross join n as kilo 
                /* cross join n as tenK cross join n as hundredK */
   order by [Date]
)
select
    d.[Date]
  , OrderCount = count(o.OrderID)
from dates d
  left join orders o
    on convert(date,o.OrderDate) = d.[Date]
group by d.[Date]
order by d.[Date] desc

答案 1 :(得分:1)

您正在使用正确的方法来执行此操作。

但如果你坚持缩短解决方法,可以使用这种方法:

第一种方式:

{0:value}.get(value==999)

使用技巧python为False和0(hash = 0)保存相同的哈希。

第二种方式:

{999:None}.get(value,value)

使用get方法和默认值来实现此目的。

第三种方式:

[None, value][value != 999]

当第一部分代表值声明而第二部分代表布尔条件时。