擅长:python、mysql、java
<p>您的错误:</p>
<pre><code>for x in a:
DT_sum = 0
</code></pre>
<p><code>DT_sum</code>每次都重置为0。。。你知道吗</p>
<p>如果您想从头开始,最简单的方法是在每一行上使用<code>sum</code>的<code>count</code>:</p>
<pre><code>with open("practice.txt") as myfile:
nb_dt = sum(line.count("/DT") for line in my_file)
</code></pre>
<p>结果是13,而不是您所说的5(可以手动验证)</p>
<p>这个解决方案没有考虑到分词。这意味着它也会找到<code>/DTXXX</code>,如果有的话。你知道吗</p>
<p>所以更复杂一点的代码可以做到:</p>
<pre><code>with open("practice.txt") as myfile:
nb_dt = sum(1 if word.partition("/")[2]=="DT" else 0 for line in my_file for word in line.split())
</code></pre>
<p>每次计数1根据<code>/</code>拆分,每行的每个单词的右边都有<code>DT</code>。你知道吗</p>