查找子子列表中元素的索引

2023-12-02

我有一个如下所示的列表:

a = [[[0.0125, 6.6], [0.0125, 6.65], [0.0125, 6.7], [0.0125, 6.75], [0.0125, 6.8]], [[0.0185, 6.6], [0.0185, 6.65], [0.0185, 6.7], [0.0185, 6.75], [0.0185, 6.8]]]

ie: N子列表(这里只有两个)和M每个子列表中的子子列表(本例中为五个)。每个元素/子子列表由两个浮点数组成。

我需要找到给定元素的索引,比如说[0.0185, 6.75]。在这种情况下,结果应该是:[1, 3].

我不能只应用.index()操作员开启a由于该元素位于子列表之一内,并且由于我事先不知道它是哪一个,因此我无法循环应用该运算符的子列表,因为如果找不到该元素,则会导致错误。


Add

我在一个更大的数组(16 个子列表和 70 个子子列表)中尝试了 zhang haochen 和 DSM 的答案,看看哪个更快,这就是我得到的:

DSM: 4.31537628174e-05
zhangxaochen: 0.00113296508789

由于 DSM 的答案速度快了约 26 倍,因此我选择了该答案。多谢你们!


一种方法是使用next and enumerate:

>>> a = [[[0.0125, 6.6], [0.0125, 6.65], [0.0125, 6.7], [0.0125, 6.75], [0.0125, 6.8]], [[0.0185, 6.6], [0.0185, 6.65], [0.0185, 6.7], [0.0185, 6.75], [0.0185, 6.8]]]
>>> search_for = [0.0185, 6.75]
>>> print next(((i,j) for i,x in enumerate(a) for j,y in enumerate(x) 
...             if y == search_for), None)
(1, 3)
>>> search_for = [0.0185, 99]
>>> print next(((i,j) for i,x in enumerate(a) for j,y in enumerate(x) 
...             if y == search_for), None)
None

但由于测试浮点数的相等性可能过于敏感,您可能需要替换y == search_foris_close(y, search_for)允许一定程度的错误容忍度的函数。使用方法is in or .index真的无法处理这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找子子列表中元素的索引 的相关文章

随机推荐

  • Angular2 嵌套 formGroups - formArrays 和模板绑定

    问题是这样的 我有一个带有嵌套表单组的复杂表单 这是它的 简化 结构 gt MyForm formGroup gt Whatever01 formControl input gt Whatever02 formControl input g
  • Bundler如何卸载冲突的依赖项

    我正在尝试执行vagrant plugin install vagrant vbguest在我的 Mac 上 ProductName Mac OS X ProductVersion 10 12 6 BuildVersion 16G29 但之
  • 分页时出现 SQL 错误

    大家好 我们有一个完美工作的关系控制器网页 index admin 但在添加分页后 它全部崩溃了 想出 SQLSTATE 42S22 Column not found 1054 Unknown column Relationship sen
  • 我想在 Nuxt.js 中的 Vuex 中使用 window.localStorage

    我开发 nuxt js 应用程序 重点是登录和注销 我们将开发 JWT 系统的登录 您必须保持 vuex 登录状态 但是 当我刷新页面时 vuex 被初始化 我读过 gitvuex 持久状态 但很难理解如何初始化和设置它 在 nuxt js
  • WPF 使用数据绑定显示格式化的多行文本

    我需要使用 WPF 数据绑定显示以下内容 值发生变化 标题必须是粗体 信息行是普通文本 如果给定标头的信息不存在 我想折叠该部分 包括标头 我更喜欢所有数据 标题和信息项 都位于一个格式化字符串中 该字符串可以在我想要的位置换行 Heade
  • 我们应该支持哪些 Xamarin ABI

    目前 我认为我们的 Xamarin Android 应用程序 PCL 非常庞大 即使在发布模式下也是如此 我怀疑这是由于支持的架构造成的 目前我们已将它们全部选中 有谁知道我们是否必须选择所有这些 我们也根本不使用 Android NDK
  • jQuery - .always() 回调触发得太快

    我正在开发一个客户端 JS 应用程序 该应用程序应该读取 CSV 文件 每行进行一些 API 调用 然后将结果写回 CSV 我所关注的部分是如何编排请求并在所有完成后触发一个函数 这是我到目前为止所拥有的 var requests loop
  • 使用“on”和“by”从两个 data.table 计算新变量

    我怎么不能用by当通过两个计算新变量时data tables合并后 示例数据集 library data table set seed 1 Example datasets dt1 lt data table id 1 10 var rno
  • 安卓中的OBB是什么

    我不知道如何使用OBB 有演示吗 我不知道它的优点 在android2 3以下的设备上使用会抛出异常吗 Detail 我读过一些有关它的文章 但我仍然不太了解 人们使用它似乎只是因为应用程序大小限制为 50mb 使用它可以将其扩大到4GB
  • 如何使用 scipy odeint 求解这个微分方程?

    我正在尝试使用 scipy odeint 求解以下微分方程 但没有取得太大成功 import numpy as np from scipy misc import derivative from scipy integrate import
  • 根据 Python str.format() 文档,什么是有效键

    我是 Python 新手 刚刚阅读了 Python 文档中的以下部分6 1 3 格式化字符串语法 Because arg name is not quote delimited it is not possible to specify a
  • 无法从 mainBundle 中删除文件

    我在从主包中删除文件时遇到问题 当我从 XCODE 4 2 中的支持文件中手动删除它们时 当我运行我的应用程序时它们仍然出现 我已经使用 显示包内容 打开了应用程序文件 并从那里手动删除了它们 当我运行应用程序时它们仍然显示 我已从模拟器和
  • 如何检查docker容器内是否正在运行进程?

    更新1 我有一个shell 它会更改某些功能中的TCP内核参数 但现在我需要使这个shell在Docker容器中运行 这意味着 shell需要知道它正在容器内运行并停止配置内核 现在我不知道如何实现这一点 这是内容 proc self cg
  • 如何将名称附加到 R 中输出数据帧的“列名称”?

    我知道我可以使用更改列的名称 colnames x lt c Column1 Column 2 Column 3 Column 4 如果我有 A lt Apple B lt Banana 我应该怎么做才能使输出数据帧的名称具有这样的名称 C
  • 如何裁剪多边形外的区域?

    我想使 PHP 中预定义多边形之外的任何内容变得透明 假设您有头部的形状 那么图像的其他任何内容都应该被分箱 预先非常感谢 为了让自己清楚 这是我一直在编写的一些代码 dat dirname FILE foto time png img i
  • 如何覆盖 @Html.LabelFor 模板?

    我有一个简单的字段表单 div class field fade label Html LabelFor model gt model Register UserName Html TextBoxFor model gt model Reg
  • 302 登录重定向后,URL 片段被 IE 删除

    We use 站点管理员我们的应用程序中的身份验证 如果应用程序用户尝试导航到特定页面https ourapp com myapp pending requests在我们的应用程序中通过直接 URL 或通过书签 URL SiteMinder
  • NSOperation 和 NSOperationQueue 工作线程与主线程

    我必须在我的应用程序中执行一系列下载和数据库写入操作 我正在使用NSOperation and NSOperationQueue对于相同的 这是应用场景 从一个地方获取所有邮政编码 对于每个邮政编码获取所有房屋 对于每栋房子获取居民详细信息
  • 如何在计算器应用程序中不重复数学运算两次?

    我使用 android studio 在 Kotlin 中制作了一个简单的计算器 我遇到的问题是如何在输入数字后不重复数学运算 但我没有办法解决它 也许是因为我是 Android 应用程序开发领域的新手 我不知道应该如何做避免这个问题 我的
  • 查找子子列表中元素的索引

    我有一个如下所示的列表 a 0 0125 6 6 0 0125 6 65 0 0125 6 7 0 0125 6 75 0 0125 6 8 0 0185 6 6 0 0185 6 65 0 0185 6 7 0 0185 6 75 0 0