python – 在子子列表中查找元素的索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在子子列表中查找元素的索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1389字,纯文字阅读大概需要2分钟。
内容图文
![python – 在子子列表中查找元素的索引](/upload/InfoBanner/zyjiaocheng/724/590afb59f1bb446fb9e5b4d9f1354c71.jpg)
我有一个如下所示的列表:
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]]]
即:每个子列表中的N个子列表(这里仅两个)和M个子列表(在该示例中为五个).每个元素/子子列表由两个浮点数组成.
我需要找到给定元素的索引,比如[0.0185,6.75].在这种情况下,结果应为:[1,3].
我不能只应用.index()运算符,因为元素在其中一个子列表中,因为我不知道它是哪一个我无法遍历应用该子元素的子列表运算符,因为如果找不到该元素,将导致错误.
加
我在一个更大的数组(16个子列表和70个子子列表)中尝试了zhangxaochen ans DSM的答案,看看哪个更快,这就是我得到的:
DSM: 4.31537628174e-05
zhangxaochen: 0.00113296508789
由于DSM的回答速度要快26倍,我选择那个.多谢你们!
解决方法:
一种方法是使用next并枚举:
>>> 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_for替换为is_close(y,search_for)函数,该函数允许对错误进行一些容差.使用in或.index的方法无法真正处理.
内容总结
以上是互联网集市为您收集整理的python – 在子子列表中查找元素的索引全部内容,希望文章能够帮你解决python – 在子子列表中查找元素的索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。