我所拥有的:我有一个列表列表,nodes
. 每个列表具有以下结构:
nodes = [[ID, number 1, number 2, number 3],[...]]
我还有另外两个称为列表的列表sampleID
,sampleID2
其中每个列表可能只有一个数据,该数据等于一个ID
数字,该数字属于IDs
包含在中的总数的子集nodes
:
sampleID = [[IDa],[...]]
sampleID2 = [[IDb],[...]], len(sampleID) + len(sampleID2) <= len(nodes)
在某些情况下,这些列表也可以是:
sampleID = [[IDa1,IDa2, IDa3,...],[...]]
我想要什么:鉴于上述三个列表,我想快速获得第四个列表,其中包含 where IDi==ID
, i=a,b 的列表:
extractedlist = [[ID, number 1, number 2, number 3],[...]], len(extractedlist) = len(sampleID) + len(sampleID2)
我的代码:非常基本,它可以工作,但需要花费大量时间来计算:
import itertools
for line in nodes[:]:
for line2,line3 in itertools.izip(sampleID[:],sampleID2[:]):
for i in range(0,len(line2)):
if line2[i]==line[0]:
extractedlist.append([line[0], line[1], line[2], line[3]])
for j in range(0,len(line3)):
if line3[j]==line[0]:
extractedlist.append([line[0], line[1], line[2], line[3]])