Nic*_*ley 13
这样的事情应该相当快:
>>> x = {0: 5, 1: 7, 2: 0}
>>> max(k for k, v in x.iteritems() if v != 0)
1
Run Code Online (Sandbox Code Playgroud)
(删除它!= 0会稍快一些,但在某种程度上模糊了意思.)
Cor*_*erg 10
要获得最大的密钥,您可以使用该max功能并检查如下所示的密钥:
max(x.iterkeys())
Run Code Online (Sandbox Code Playgroud)
要筛选出值为0的值,可以使用生成器表达式:
(k for k, v in x.iteritems() if v != 0)
Run Code Online (Sandbox Code Playgroud)
您可以将这些结合起来以获得您要查找的内容(因为max只需要一个参数,可以删除生成器表达式周围的括号):
max(k for k, v in x.iteritems() if v != 0)
Run Code Online (Sandbox Code Playgroud)