说,
C = [ [1,2,3],[1,3,4],[3,5,6]]
item_list=[1,3,4]我使用以下代码实现了我想要的功能:
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。
发布于 2018-06-02 06:03:40
您希望对列表执行flatten操作。例如:
a = [[0, 1], [0, 1, 2], [1]]
flat_list = [item for sublist in a for item in sublist]
In [5]: flat_listOut5: 0,1,0,1,2,1
在特定代码的情况下,您可以这样做:
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]或者,您可以像下面这样使用一行代码:
rind = list(map(set, [[i for i in range(len(C)) if item in C[i]]
for item in item_list]))https://stackoverflow.com/questions/50651443
复制相似问题