python - 在 Python 中查找最小值或最大值的值的索引

标签 python

我有一个表格的结构:

>>> items
[([[0, 1], [2, 20]], 'zz', ''), ([[1, 3], [5, 29], [50, 500]], 'a', 'b')]

每个元组中的第一项是范围列表,我想创建一个生成器,根据起始索引以升序为我提供范围。

由于范围列表已经按照它们的起始索引排序,这个操作很简单:它只是一个排序合并。我希望以良好的计算效率来做到这一点,所以我认为隐式跟踪我的合并状态的一种好方法是简单地从具有最小起始索引的元组列表中弹出前面范围列表。

我可以使用 min() 来获得 [0, 1] 这是我想要的第一个,但是我如何获得它的索引呢?

我有这个:

[ min (items[i][0]) for i in range(len(items)) ]

这给了我每个列表中的第一项,然后我可以通过某种方式 min() ,但是一旦任何列表变为空,它就会失败,而且还不清楚如何获取使用 pop() 的索引,而不在列表中查找它。

总结一下:想要构建为我返回的生成器:

([0,1], 'zz', '')
([1,3], 'a', 'b')
([2,20], 'zz', '')
([5,29], 'a', 'b')
([50,500], 'a', 'b')

或者更高效,我只需要这些数据:

[0, 1, 0, 1, 1]

(我想取前面的元组的索引)

最佳答案

 from operator import itemgetter
 index, element = max(enumerate(items), key=itemgetter(1))

返回items中最大元素的索引和元素本身。

关于python - 在 Python 中查找最小值或最大值的值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945518/

相关文章:

python - 如何在向后兼容的代码中使用 GLib.io_add_watch ?

python - key 检查时 "key in dict"和 "dict.get(key)"之间的区别

python - 如何在 Django Admin 中从外键动态访问字段

python - Django Rest Framework 如何返回在所有无效网址上找不到的详细信息?

python - 在python上连接反斜杠

python - 计算 bool numpy 数组中每行与其他行的相交列数

python - 为什么在设置索引更快时使用 reset_index(drop=True)?

python - 使用 lxml 解析具有多个命名空间的 xml

初始化字典的 Python KeyError 异常

Python CSV writer 截断长数字