Python 列表:列表中具有重复值的 heapq.nlargest 索引

2023-11-23

假设我有一个数字列表:

my_list = [3, 8, 4, 2, 8, 1, 1, 2, 5, 1]

我现在想找到这个列表中两个最大数字的索引。所以,我尝试:

import heapq
max_vals = heapq.nlargest(2, my_list)
index1 = my_list.index(max_vals[0])
index2 = my_list.index(max_vals[1])
print index1
print index2

在这里,两者index1and index2 are 1。这是因为max_vals has 8对于这两个值,并且my_list.index()只是搜索第一个实例8.

在这种情况下如何获得前 2 个值的索引,这样index1 is 1和以前一样,但是index2 is now 4,对应另一个8在列表中?

附带说明一下,查找列表中的最大值,然后查找该值的索引似乎效率相当低。难道没有一种方法可以通过一次扫描列表来实现这一目标吗?

谢谢。


您可以申请heapq.nlargest on enumerate(list)"

>>> import heapq
>>> data = heapq.nlargest(2, enumerate(my_list), key=lambda x:x[1])
>>> indices, vals = zip(*data)
>>> indices
(1, 4)
>>> vals
(8, 8)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 列表:列表中具有重复值的 heapq.nlargest 索引 的相关文章

随机推荐

  • 如何在 elastic beanstalk 中扩展 nginx 配置 (Amazon Linux 2)

    我听从了建议here配置 nginx 反向代理以允许大于默认 1mb 的文件 所以 我的代码在 platform nginx conf d prod conf看起来像这样 http client max body size 30M 然而 这
  • 适用于 iPhone 的 UIPOPOVER?或者是假的?

    谁能看一下这个吗 http www woowoomac com storage awesome note iphone note todo app menus jpg SQUARESPACE CACHEVERSION 12685817624
  • 如何让 CRON 调用正确的路径

    我试图让 cron 调用正确的路径 当我从 shell 运行 Python 脚本时 脚本运行良好 因为它使用 bashrc 中设置的 PATH 但是当我使用 cron 时 所有 PATH 都不会从 bashrc 使用 是否有一个文件可以像
  • WCF 4 服务的扁平 WSDL

    使用 WCF 3 5 和来自 Christian Weyer 的 FlatWsdl EndpointBehavior 我能够为我的 WCF 服务获取单个平面 WSDL 文件 而无需任何
  • DDD-- 如何补充水分

    Question 从存储库中重新水化聚合体的最佳 高效且面向未来的方法是什么 所提供的方法有哪些优点和缺点 我的看法是否正确 假设我们有一个带有私有 setter 和公共 getter 的聚合根用于访问state 行为是通过聚合根上的方法完
  • Dynamic_cast 中的类型必须是完整类类型的指针或引用,或者 void *

    我希望有人能理解为什么下面的代码失败 我试图从 osg Node 节点对象获取 PositionAttitudeTransform Openscenegraph 类 的实例 但下面有粗体的编译器错误 void CameraPosCallba
  • 为什么扩展元素不适合复制多维数组?

    来自MDN 传播语法 注意 通常 ES2015 中的扩展运算符在复制数组时会深入一层 因此 它们不适合复制多维数组 这与 Object assign 和对象扩展语法的情况相同 请参阅下面的示例以更好地理解 var a 1 2 3 var b
  • Codeigniter 如何创建 PDF

    我要创建一个发票系统 我现在正在为此做准备 我将使用 Codeigniter 问题是我想创建 PDF 格式的发票 这样我就可以通过电子邮件发送它 你们有什么建议 我正在考虑 HTML 到 PDF 的转换 或者在屏幕上显示发票并安装 pdf
  • Boost 随机和 OpenMP

    我从 OpenMP 并行代码部分收到 总线错误 我在下面重新创建了我的问题的简单版本 该代码本质上对函数进行了多次调用uniform distribution 它使用 Boost 的uniform int distribution 绘制 0
  • SQL Server 2005 - 将列设置为只读

    我在 SQL Server 2005 数据库的表中有一个 InsertTime 字段 当记录首次插入数据库时 该字段默认为 getDate 我想确保此专栏不再更新 是否可以将此列设置为只读 或者是否有更好的方法来执行此操作 而无需为开发人员
  • 使用 Java 的 Google 数据存储模拟器(不使用 GAE)

    我正在使用 Google Cloud 的 Java 数据存储客户端库来访问 Cloud Datastore Note 我没有使用 App Engine 来部署我的应用程序 只是出于开发目的运行本地应用程序 按照示例 我可以读取 写入云数据存
  • 将模板成员函数的专门化定义(没有默认主体)放在源文件中是否安全?

    这就是我的意思 test h class cls public template lt typename T gt void f T t test cpp template lt gt void cls f const char main
  • 关于不使用 Interface Builder 进行 iPhone GUI 设计的教程?

    有谁知道有关仅使用代码而不是 Interface Builder 进行 iPhone GUI 设计的好教程吗 我是 iPhone 开发新手 我想更好地了解幕后发生的事情 查看 SDK 中的 UI 目录示例 它展示了以多种方式使用的所有单独控
  • 我可以在不安装的情况下使用git吗?

    我听说过有关 git 的好消息 我想在安装它之前尝试一下 如果我想在学校使用 git 那么将它放在闪存驱动器上也很棒 是否可以使用完整路径 例如 path to git init 我主要使用 Mac OS X 所以问题主要针对 Mac 但我
  • Symfony/Doctrine:DateTime 作为主键

    我正在尝试使用日期作为主键创建一个实体 问题是 Symfony 无法将我正在使用的 DateTime 转换为字符串以将其引入到 IdentityMap 中 在实体持久化期间出现以下错误 Catchable Fatal Error Objec
  • PHP 运算符优先级和字符串连接?

    请看下面的代码片段 i 1 echo i i 很快 我以为结果会是12但实际结果是21 also echo i i 我以为会是12但它的11 echo i i result is 1 echo i i 1 result is 2 But w
  • 在通用 lambda 中使用模板参数

    GCC允许使用以下语法作为扩展 a functional object that will add two like type objects auto add
  • 默认参数和可变参数函数

    有没有办法在可变参数函数中指定默认参数 也适用于模板 在 C 中 您可以将可变参数函数替换为基于命名参数习惯用法的函数 请参阅 C 常见问题解答项10 20 什么是 命名参数习惯用法 这为您提供了默认功能和方便的符号 干杯
  • 将 web.xml 安全约束与 Spring Boot 结合使用

    我有一个特殊的情况 我需要使用应用程序服务器 Weblogic 安全上下文进行身份验证 但使用 Spring Security 进行授权 我在用Spring Boot创建我的应用程序 如何添加如下所示的安全约束 通常包含在web xml
  • Python 列表:列表中具有重复值的 heapq.nlargest 索引

    假设我有一个数字列表 my list 3 8 4 2 8 1 1 2 5 1 我现在想找到这个列表中两个最大数字的索引 所以 我尝试 import heapq max vals heapq nlargest 2 my list index1