我有一个特定的数字列表(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,有人能帮助我加快速度吗?
答案 0 :(得分:1)
首先:
rind = [[i for i in range(len(C)) if item in C[i]]
for item in item_list]
这里的关键变化是in
的使用速度应该比手动检查更快。
这也意味着如果输入中的子列表中出现多次数字,您将不会在输出的子列表中多次获得i
次,我认为这是您真正想要的。