微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

列表比较包括索引

如何解决列表比较包括索引

array_one = [1,2,3,4]
array_two = [6,7,1,17,23,48,4]

lc = [e for e in array_one if e in array_two]

到目前为止一切顺利,我找到了我想要的值。对我来说下一个重要步骤是获取找到的项目的索引。

我试过了

lc_2 = [index for index,(e1,e2) in enumerate(zip(array_one,array_two)) if e1 == e2]

但结果不是我需要的,或者我对它们的理解不正确。

长话短说:找到具有相应索引的重复项会很好。

它必须是一个灵活的系统,因为在某些情况下我有 2 场比赛,有时是 3 场,有时是 1 场比赛

解决方法

假设 array_two 中的值是唯一的,您可以使用 index 找到 array_onearray_two 中的值的索引。例如,此列表推导式将为 array_one 中的每个值生成一个元组列表(值,array_one 中的索引,array_two 中的索引):

array_two

输出:

array_one = [1,2,3,4]
array_two = [6,7,1,17,23,48,4]

lc_2 = [(e,i,array_two.index(e)) for i,e in enumerate(array_one) if e in array_two]

print(lc_2)
,

您可以在 numpy 中轻松完成:

import numpy
values,indices_one,indices_two = numpy.intersect1d(array_one,array_two,return_indices=True)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?