就像我使用以下脚本创建字典一样:
r_lst = {}
for z in df.index:
t = x.loc[0, 'sn']
s = df.loc[z, 'rv']
slope, intercept, r_value, p_value, std_err = stats.linregress(t,s)
r_lst.setdefault(float(z),[]).append(float(r_value))
生成的字典看起来像这样
{4050.32: [0.29174641574734467],
4208.98: [0.20938901991887324],
4374.94: [0.2812420188097632],
4379.74: [0.28958742731611586],
4398.01: [0.3309140298947313],
4502.21: [0.28702220304639836],
4508.28: [0.2170363811575936],
4512.99: [0.29080133884942105]}
现在,如果我想找到字典的最小值或最大值,那么我只需使用这个简单的命令 min(r_lst.values())
或 max(r_lst.values ())
。
如果我想要三个最低值或三个最高值怎么办?那我怎样才能得到它呢?我在这里看到了一些问题,但没有一个回答我的要求。
最佳答案
只需使用sorted()
:
sorted(r_lst.values())
或者以相反的顺序:
sorted(r_lst.values(), reverse=True)
因此要获取 3 个最大值:
sorted(r_lst.values(), reverse=True)[:3]
产量:
[[0.3309140298947313], [0.29174641574734467], [0.29080133884942105]]
关于python - 如何获取字典中多个最小/最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52821543/