首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何有效地找到2D矩阵中多个元素的行索引?

如何有效地找到2D矩阵中多个元素的行索引?
EN

Stack Overflow用户
提问于 2018-06-02 05:58:49
回答 1查看 23关注 0票数 0

说,

代码语言:javascript
运行
复制
C = [ [1,2,3],[1,3,4],[3,5,6]]
item_list=[1,3,4]

我使用以下代码实现了我想要的功能:

代码语言:javascript
运行
复制
    rind = [[i for i in range(len(C)) if item in C[i]]
        for item in item_list]

我得到的rind是[0,1,0,1,2,1]

我实际上希望我的o/p是像0 1 0 1 2 1这样的一维数组

你可以建议一种完全替代的方法来获得行索引,或者建议我如何将数组列表转换为一维数组?

请注意,C的实际大小是2M*4,item_list是20000。

EN

回答 1

Stack Overflow用户

发布于 2018-06-02 06:03:40

您希望对列表执行flatten操作。例如:

代码语言:javascript
运行
复制
a = [[0, 1], [0, 1, 2], [1]]
flat_list = [item for sublist in a for item in sublist]


In [5]: flat_list

Out5: 0,1,0,1,2,1

在特定代码的情况下,您可以这样做:

代码语言:javascript
运行
复制
rind = [[i for i in range(len(C)) if item in C[i]]
        for item in item_list]
rind = [item for sublist in rind for item in sublist]

或者,您可以像下面这样使用一行代码:

代码语言:javascript
运行
复制
rind = list(map(set, [[i for i in range(len(C)) if item in C[i]]
        for item in item_list]))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50651443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档