擅长:python、mysql、java
<p>从功能上考虑!</p>
<ol>
<li><p>编写一个函数,它将获取日志文件的一行并返回uuid。比如说,叫它<code>uuid</code>。</p></li>
<li><p>将此函数应用于日志文件的每一行。如果使用的是Python3,则可以使用内置函数映射;否则,需要使用itertools.imap。</p></li>
<li><p>将此迭代器传递给collections.Counter。</p>
<pre><code>collections.Counter(map(uuid, open("log.txt")))
</code></pre></li>
</ol>
<p>这将是非常有效的。</p>
<p>一些评论:</p>
<ul>
<li><p>这完全忽略了uuid的列表,只统计出现在日志文件中的uuid。如果您不想这样做,您需要对程序进行一些修改。</p>
<ul>
<li>您的代码很慢,因为您使用了错误的数据结构。你在这里想要的就是口述。</li>
</ul></li>
</ul>