2014-07-20 55 views
-3

我需要將res值存儲在列表「a」中,但它只打印res的最後一個值。如果來自程序的所有3個條件的res值都產生如下輸出:python變量輸出不會添加到列表中

['Keel'] 
['goodthing'] 
['Tensa'] 
['Jees'] 
['John'] 
['Mary'] 
['he'] 

當我想輸出添加到列表中的「A」只打印['he'],而不是所有的輸出

import re 
a=[] 
with open('qwert.txt', 'r') as f: 
    for line in f: 
     res = re.findall(r'(?:Dr[.](\w+))', line) 
     if res: 
      a= res 
     res = re.findall(r'(?:As (\w+))', line) 
     if res: 
      a= res 
     res = re.findall(r'\w+(?==\w)', line) 
     if res: 
      a= res 

print a 

請幫我所有的輸出存儲在列表中的「A」 .Answers將不勝感激!

+0

同樣的效果爲什麼你認爲反覆重新分配了''會導致原始列表改變? – jonrsharpe

回答

3

使用a.extend(res),而不是a = res

一個例子:

>>> a=[] 
>>> a.extend([1,2]) 
>>> print a 
[1, 2] 
>>> a.extend([3,4]) 
>>> print a 
[1, 2, 3, 4] 
1

,而不是a = resa += res,有喜歡用list.extend