python - 如何获取字典中多个最小/最大值?

标签 python python-2.7 sorting dictionary

就像我使用以下脚本创建字典一样:

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/

相关文章:

Python sys.executable 为空

python - Pandas 根据另一列中的条件进行填充

python - 如何获得n个二进制值的所有组合?

python - 如何在Python中将十六进制字符串与空格进行异或

python - 插入新元素作为链表的头部 Python

java - 为什么在排序数组的二分查找场景中仍然出现错误情况?

java - 如何使用二进制数技术对整数的数字进行排序?

python - 使用 json 验证使用 python 显示 json 模式中的所有错误

java - 比较器(排序)按优先级比较具有 3 个属性的对象数组列表

python - 错误: Internal Python error in the inspect module