Python加上数字列表的长度

时间:2016-05-18 04:38:43

标签: python list python-2.7 sum frequency

所以我试图在txt文件中找到一个特定的单词,并将其出现,我使用的代码加起来

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,3,0,2 ..... ...] 我可以说这些是字符串的出现次数" will"在文本的每一行中,我的问题是如何将这些数字列表相加以得到"总和/#34;在整个文本文件中。

2 个答案:

答案 0 :(得分:1)

一种方法是使用总计:

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

print total

答案 1 :(得分: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