嵌套字典中的键是否包含NaN值?

时间:2015-08-03 19:18:37

标签: python dictionary

我在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值进行哪些更改?

1 个答案:

答案 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))