2015-04-17 67 views
0

datadicabst是列表,在形式的数据:[[0, 1, 0, 0 , 1...0],[1, 0, 0, 1, 0, 1....0]],在循环之后,我得到的结果是这样的:如何单独打印列表而不是合并它们?

abst = ['PS50802', 'PS50803', 'PS50804', 'PS50805', 'PS50806', 'PS50807', 'PS50808', 'PS50809', 'PS50810', 'PS50811', 'PS50812', 'PS50813', 'PS50814',......]

dic = ['PS50102' 'PS50101' 'PS50106' 'PS50199' 'PS50196' 'PS00832' 'PS50072'...]

[0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0]

看起来像两个单独的列表合并成一个列表,但是怎么可以我得到的结果是这样的:

[0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, ,[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, ,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0]]

lines = [] 

for x in range(0, 2): 
    for item in dic: 
     for i,j in enumerate(abst):  
      if item == j: 
       lines.append(data[x][i]) 

print lines 
+0

你能解决你的第二个结果?它缺少一个括号 –

+0

你可以发布你的数据,dic和abst变量的简化版本,并确切地说明你想要实现的目标吗? – CoMartel

+0

@HarryPotfleur,是的,我做到了。 – Kun

回答

1

如果您想保留两个列表的列表,你可以试试这个:

lines = [] 
for x in range(0, 2): 
    line = [] 
    for item in dic: 
     for i,j in enumerate(abst):  
      if item == j: 
       line.append(data[x][i]) 
    lines.append(line) 

print lines 

,你也许能够简化

lines = [] 
for x in range(0, 2): 
    line = [] 
    for item in dic: 
     if item in abst: 
      i = abst.index(item) 
      line.append(data[x][i]) 
    lines.append(line) 

lines = [] 
for x in range(0, 2): 
    line = [data[x][abst.index(item)] for item in dic if item in abst] 
    lines.append(line) 

最后,用一个列表理解:

lines = [ [data[x][abst.index(item)] for item in dic if item in abst] for x in range(0, 2) ] 
+0

是的,这是我想要的,谢谢。 – Kun

+0

不客气:-) –

相关问题