2017-04-18 80 views
0

附加我需要寫一個for循環以下過程:難度與循環和在Python 2.7

elements = [ 
      [ "a", ['aft','fwd','starboard']], 
      [ "b", ['plastic','metal','wood']] 
      ] 

query1 = [] 
query2 = [] 
temp1 = [] 
temp2 = [] 
final = [] 

for keyword in elements[0][1]: 
    a = do_something.search(keyword) 
    query1.append(a) 

temp1.append(elements[0][0]) 
temp1.append(query1) 


for keyword in elements[1][1]: 
    a = do_something.search(keyword) 
    query2.append(a) 

temp2.append(elements[1][0]) 
temp2.append(query2) 

final.append(temp1) 
final.append(temp2) 

其中do_something是一個SQL查詢。預期的答案是以下的東西:用值「a」相關

final = [['a', [['result1','result2','result3'],['result4','result5']]], 
     ['b', [['resultA','resultB']]]] 

,其中結果1-5返回SQL查詢和值A和B返回值爲「B」

相關的SQL查詢我嘗試:

query = [] 
temp = [] 
final = [] 


for i in range(0,len(elements)): 
    for keyword in elements[i][1]: 
     a = do_something.search(keyword) 
     query.append(a) 

temp.append(elements[i][0]) 
temp.append(query) 
final.append(temp) 

,但我似乎是在追加,我不能找出問題

回答

0

我想你已經凝結就OK了,你只是不使用清潔ç ontainers

我會親自範圍他們在循環:

#query = [] 
#temp = [] 
final = [] 


for i in range(0,len(elements)): 
    temp = [] 
    query = [] # use an empty list 
    for keyword in elements[i][1]: 
     a = do_something.search(keyword) 
     query.append(a) 

    temp.append(elements[i][0]) # before the temp still contained first iteration data. 
    temp.append(query) 
    final.append(temp) 
+0

這個完美工作。 TY –