我有一个dictionary
:键是字符串,值是整数.
例:
stats = {'a':1000, 'b':3000, 'c': 100}
Run Code Online (Sandbox Code Playgroud)
我想得到'b'
一个答案,因为它是具有更高价值的关键.
我使用具有反向键值元组的中间列表执行以下操作:
inverse = [(value, key) for key, value in stats.items()]
print max(inverse)[1]
Run Code Online (Sandbox Code Playgroud)
这是一个更好(或更优雅)的方法吗?
max(float('nan'), 1)
评估为nan
max(1, float('nan'))
评估为1
这是预期的行为吗?
谢谢你的回答.
max
当iterable为空时引发异常.为什么Python max
在nan
出现时不会引发异常?或者至少做一些有用的事情,比如回归nan
或忽略nan
.目前的行为非常不安全,似乎完全不合理.
我发现这种行为更令人惊讶的结果,所以我刚发布了一个相关的问题.
在max
/ min
内置插件似乎是贪婪的,即它们将返回第一次出现的情况下,当它是唯一的.
>>> x = [('spam', 1), ('egg', 0), ('potato', 1)]
>>> max(x, key=lambda v: v[1])
('spam', 1)
>>> max(reversed(x), key=lambda v: v[1])
('potato', 1)
Run Code Online (Sandbox Code Playgroud)
这是由语言保证,可以依赖于跨平台和版本,还是实现细节?
在python 2.7.3中,使用带有lambda的min函数,例如min(list, key=f)
where f
是lambda函数.如果是列表中的f(x)
所有值总是相同的情况x
,是否保证list[0]
将返回?
谢谢