2013-07-24 62 views
0

我非常確定這有一個簡單的答案,但我完全卡住了!Python將循環的每次迭代輸出到數組的一行

我有不同數量的單詞列表,我試圖看看我是否可以在文本文件中找到這些單詞。 所以,如果的話,我想找到的名單是:

stem=[[u'travail',u'electr'],[u'la',u'vou']] 

然後我通過每幹名單的「行」的每一個字循環,並試圖找到在文本文件中這個詞。該代碼返回一個單詞匹配位置的索引。

for row in stem: 
     for j,i in enumerate(row): 
      y=[match.start() for match in re.finditer(re.escape(i), lowe)] 
       print y 

輸出:

[669, 2102, 5810] 
    [1452, 2120, 5628] 
    [1582, 2912, 3109, 5711] 
    [605, 761, 882, 948, 1126, 1132, 1357, 1646, 1936, 2011, 2765, 3286, 3316, 3512, 3821, 3839, 3879, 4012, 4052, 4159, 4417, 4457, 4492, 4699, 4813, 4850, 4921, 4966, 4991, 4998, 5008, 5046, 5118, 5201, 5359, 5506, 5680] 

我如何得到一個輸出,所以它就像

[[[669, 2102, 5810], [1452, 2120, 5628]], [[1582, 2912, 3109, 5711], [605, 761, 882, 948, 1126, 1132, 1357, 1646, 1936, 2011, 2765, 3286, 3316, 3512, 3821, 3839, 3879, 4012, 4052, 4159, 4417, 4457, 4492, 4699, 4813, 4850, 4921, 4966, 4991, 4998, 5008, 5046, 5118, 5201, 5359, 5506, 5680]]] 

,使輸出的每一行是在其自己的名單謝謝!!

+0

此外,什麼是你的'enumerate'點?我沒有看到你在任何地方使用'j',所以看起來你應該可以在行中爲'我做':(然後我可能會將變量名'i'改爲'column'或者某個東西更清楚) – mgilson

+0

您必須使用結果列表,您將在其中追加每個子列表。 – emigue

回答

2

如果我理解正確的話,這樣的事情應該這樣做:

output = [] 
for row in stem: 
    current = [] 
    output.append(current) 
    for j,i in enumerate(row): 
     y=[match.start() for match in re.finditer(re.escape(i), lowe)] 
     current.append(y) 

print output 
+0

非常感謝你!!!!!!這個作品完美! – user2496006

相關問題