我的代码(到目前为止):
ins = open( "log", "r" )
array = []
for line in ins:
array.append( line )
for line in array:
if "xyz" in line:
print "xyz found!"
else:
print "xyz not found!"
日志文件示例:
^{pr2}$我当前使用的Python脚本找到xyz并打印它找到的内容。但我想做的不仅仅是找到xyz。我想在xyz之前和之后找到这个词。一旦我这样做了,我希望能够存储(暂时,您的回答中不需要数据库)Norman出现在“xyz”之前的次数以及Norman在“xyz”之后的次数(这也适用于所有其他名称和动物)。在
这纯粹是一个学习练习,所以如果你能包括你提出答案的“过程”,我们将不胜感激。我想知道如何像程序员一样思考,如果你愿意的话。这些代码的大部分只是我在google上找到的东西,然后混搭在一起,直到我找到了有用的东西。如果有更好的方式来写我目前所拥有的,我也会很感激!在
谢谢你的帮助!在
如果您所说的“单词”只是指“空格分隔标记”,则可以使用
然后检查
key == "xyz"
,如果是,请采取行动。在“采取行动”部分显然意味着“数东西”,这就是
^{pr2}$collections.Counter
的意义所在。要计算xyz
前后的值,请使用两个计数器:请注意,您当前的脚本将文件读入RAM会浪费大量的时间和内存,所以我也修复了这个问题。要遍历文件的行,不需要中间变量
array
。在'abc'.split('b')
将返回['a','c']
,因此我们可以这样更改您的代码:或者,如果我们只想知道某物在xyz之后或之前出现的所有时间,我们可以使用Counter
^{pr2}$相关问题 更多 >
编程相关推荐