我在python中有以下数据
SELECT DISTINCT b FROM SystemsTable AS a, DetailTable1 AS b
WHERE (b.Serial = a.serial1 OR b.Serial = a.serial2)
AND a.model= 'ABC'
我有兴趣找到最大值为C的键。 到目前为止,如此好的以下代码正在运行,但如果' c'在我的情况下有NaN值吗? 我写了以下代码
for(DetailTable1 bean : tickets) {
Query items= getSession().createQuery("SELECT DISTINCT a FROM"
+ "DetailTable2 AS a, LinkTable AS b "
+ "where a.Id2 = b.Id2 AND b.Id1= :Id1");
items.setParameter("Id1", bean.getID1());
}
我在上面的代码中需要对C中的NaN值进行哪些更改?
答案 0 :(得分:3)
您可以为NaN提供默认值:
print(max(my_dictionary, key=lambda v: my_dictionary[v]['c']
if isinstance(my_dictionary[v]['c'],int) else float("-inf")))
您还可以使用函数作为键传递,而不是两次查找值,并使用Number
来处理不仅仅是整数的情况:
from numbers import Number
def key(x):
val = my_dictionary[x]['c']
return val if isinstance(val, Number) else float("-inf")
print(max(my_dictionary, key=key))