假设我有一个阈值列表,对应的类如下:
classes = [{1, "1"},
{2, "4"},
{3, "7"},
{4, "8"},
{5, "9"}]
我想通过根据它的元素定义 case 来在查询中使用这个列表. 这是我的疑问:
query = select([
subquery.c.id,
case([(subquery.c.some_value <= x, y) for x, y in classes
]).label("incidence_class")
])
这可以很好地工作,但我有一些边缘 case ,我想通过使用Else case 来捕获它们. 因此,我基本上想要动态创建的是:
query = select([
subquery.c.id,
case((subquery.c.some_value <= 1, "1"),
case((subquery.c.some_value <= 2, "4"),
case((subquery.c.some_value <= 3, "7"),
case((subquery.c.some_value <= 4, "8"),
case((subquery.c.some_value <= 5, "9"),
else_=10
).label("incidence_class")
])
我想要添加到列表中的行是"Else_=10".我不能只把它添加到我用列表理解创建的列表中,因为它是代码,对吗?
先谢谢你.