私はPythonの初心者で、問題の内容を自分のコードで把握するのに苦労しています。Pythonのリストの値を集計する
私がここでやろうとしているのは、テキストをリストのタプルに変換してから、リスト内のDTの数を数えることです。
のは、txtファイルの最初の3行以下になりますと言ってみましょう:
The/DT Fulton/NNP County/NNP Grand/NNP Jury/NNP said/VBD Friday/NNP an/DT investigation/NN of/IN Atlanta/NNP 's/POS recent/JJ primary/JJ election/NN produced/VBD ``/`` no/DT evidence/NN ''/'' that/IN any/DT irregularities/NNS took/VBD place/NN ./.
The/DT jury/NN further/RB said/VBD in/IN term-end/JJ presentments/NNS that/IN the/DT City/NNP Executive/NNP Committee/NNP ,/, which/WDT had/VBD over-all/JJ charge/NN of/IN the/DT election/NN ,/, ``/`` deserves/VBZ the/DT praise/NN and/CC thanks/NNS of/IN the/DT City/NNP of/IN Atlanta/NNP ''/'' for/IN the/DT manner/NN in/IN which/WDT the/DT election/NN was/VBD conducted/VBN ./.
The/DT September-October/NNP term/NN jury/NN had/VBD been/VBN charged/VBN by/IN Fulton/NNP Superior/NNP Court/NNP Judge/NNP Durwood/NNP Pye/NNP to/TO investigate/VB reports/NNS of/IN possible/JJ ``/`` irregularities/NNS ''/'' in/IN the/DT hard-fought/JJ primary/NN which/WDT was/VBD won/VBN by/IN Mayor-nominate/NNP Ivan/NNP Allen/NNP Jr./NNP ./.
をこれは、ワークスペースの「practice.txt」として保存されました。
with open("practice.txt") as myfile:
for line in myfile:
cnt += 1
word = line.split()
total_word_per_line += len(word)
total_type_of_words += len(set(word))
a = [tuple(i.split('/')) for i in word]
for x in a:
DT_sum = 0
if x[1] == 'DT':
DT_sum += 1
total_DT_sum += DT_sum
print total_DT_sum
をしかし出力は、それが唯一の第三のリストでのDTを数え意味total_DT_sum、ため2を示しています
だから私のコードは以下のように見えます。すべてのDTを数えるための提案はありますか?
所望の出力は、予め5(上記の3つの文章からのDTの総数)
おかげです!
あなたは各反復の開始時に0に 'DT_sum'を設定します。その初期化をループの前に移動する必要があります。 –
私はちょうど推測していますが、 'DT_sum = 0'は' for x in a: '行の前にあるべきではありませんか? – fredtantini
あなたの3つの文には13個の '/ DT'文字列があります。 –