2016-05-18 46 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