查找2D数组中一组元素的所有行索引

时间:2016-10-25 21:57:20

标签: python list

我有一个特定的数字列表(item_list),我需要在2D数组(C)中关联所有行索引。请找到以下代码:

# Sample code
item_list = [1, 2, 3]

C= [[0 for x in range(5)] for x in range(5)]

C[0][:]=[1,5,3,25,30]
C[1][:]=[7,9,15,2,45]
C[2][:]=[2,9,15,78,98]
C[3][:]=[3,90,15,1,98]
C[4][:]=[12,19,25,3,8]

rind=[]

for item in item_list:
    v=[i for i in range(len(C)) for j in range (len(C[i])) if C[i][j]==item ]
    r_ind.append(v)

我的2D数组大小约为7M * 4,有人能帮助我加快速度吗?

1 个答案:

答案 0 :(得分:1)

首先:

rind = [[i for i in range(len(C)) if item in C[i]]
        for item in item_list]

这里的关键变化是in的使用速度应该比手动检查更快。

这也意味着如果输入中的子列表中出现多次数字,您将不会在输出的子列表中多次获得i次,我认为这是您真正想要的。

相关问题