2016-05-18 71 views
0
名單的長度

,所以我試圖找到TXT文件中的特定單詞,並添加了其發生,我的代碼使用Python的合計數

import re 

pattern = re.compile(r"\bshall\b") 
pattern1 = re.compile(r"\bmay not\b") 
pattern2 = re.compile(r"\bmust\b") 

with open('C:\Python27\projects\Alabama\New folder\\4.txt', 'r') as myfile: 
for line in myfile: 
    m = re.findall(pattern, line) 
    #m1 = re.findall(pattern1, line) 
    #m2 = re.findall(pattern2,line) 

    k = len(m) 
    #k1 = len(m1) 
    #k2 = len(m2) 
    #sumk = sum(len(k) for k in myfile) 
    print k 

當我打印出來K,它給[0,0,0,1,0,0,0,0,1,0,0,0,0,0,2 ...]的垂直列表的數量我可以說這些是在文本的每一行中應該出現字符串「應該」的次數,我的問題是如何將這些數字列表相加以得到整個文本文件中「應該」的總和/總髮生次數。

+0

k = len(m)+ k,定義k外。 – khrm

回答

1

的一種方法是使用一個運行總計:

total = 0 
for line in myfile: 
    m = re.findall(pattern, line) 
    total += len(m) 

print total 
1

如果您打算sum列表,你可以使用sum,但你需要定義k之外,使得它不會取代每次都有新值:

k = [] #define k as empty list here 
for line in myfile: 
    m = re.findall(pattern, line) 
    k.append(len(m)) #append the list with new item 
val = sum(k) #get the sum here