获取字典中最大和最小键的最简单方法是什么?
self.mood_scale = {
'-30':"Panic",
'-20':'Fear',
'-10':'Concern',
'0':'Normal',
'10':'Satisfaction',
'20':'Happiness',
'30':'Euphoria'}
我需要设置两个变量:max_mood
和 min_mood
,这样我就可以给一个指标设定一些限制。请问有什么简单的方法可以找到最低和最高的值吗?
3 个回答
7
这段代码是有效的Python吗?我觉得你想表达的是:
mood_scale = {
'-30':"Panic",
'-20':'Fear',
'-10':'Concern',
'0':'Normal',
'10':'Satisfaction',
'20':'Happiness',
'30':'Euphoria'}
print mood_scale[str(min(map(int,mood_scale)))]
print mood_scale[str(max(map(int,mood_scale)))]
输出结果
恐慌 兴奋
用整数作为键会更好更快
mood_scale = {
-30:"Panic",
-20:'Fear',
-10:'Concern',
0:'Normal',
10:'Satisfaction',
20:'Happiness',
30:'Euphoria'}
print mood_scale[min(mood_scale))]
print mood_scale[max(mood_scale))]
编辑2: 使用迭代器会快得多
print timeit.timeit( lambda: mood_scale[min(mood_scale.keys())])
print timeit.timeit( lambda: mood_scale[min(mood_scale)])
1.05913901329
0.662925004959
另一种解决方案是,在插入时跟踪最大值和最小值,然后简单地使用 mood_scale.min() / max()
12
在编程中,有时候我们需要处理一些数据,这些数据可能是从用户那里输入的,或者是从其他地方获取的。为了让程序能够理解这些数据,我们通常会把它们转换成一种特定的格式。
比如说,如果你有一个数字字符串“123”,程序可能需要把它转换成真正的数字123,这样才能进行数学运算。这个过程就叫做“类型转换”。
在不同的编程语言中,类型转换的方法可能会有所不同。有些语言会自动帮你转换,而有些则需要你手动去做。
总之,理解数据的类型和如何转换它们,是编程中非常重要的一部分。这样才能确保程序能够正确地处理和使用这些数据。
>>> min(self.mood_scale, key=int)
'-30'
>>> max(self.mood_scale, key=int)
'30'
9
这样做应该可以:
max_mood = max(self.mood_scale)
min_mood = min(self.mood_scale)
可能不是最有效的方法(因为它需要获取并遍历键的列表两次),但肯定是非常明显和清晰的。
更新:我没注意到你的键是字符串。听起来这可能是个错误,所以我就不改了,但请注意,这个方法要求键必须是真正的整数。