重複の可能性:
Python での反復中にリストからアイテムを削除する
かなり埋め込まれたリストがあります。具体的には、タプルのリストのリストです。簡単にするために、リスト全体は文のリストです。各センテンス内で、各単語はその単語に関する情報を含むタプルになります。各文の最後のタプルには話者に関する情報が含まれていますが、必要に応じて削除できます。
これらのタプルを検索して、特定の値が見つかった場合は、文全体を削除したいと思います。
リストの例を次に示します。
sentenceList = [[('the', 'det', '1|2|DET'), ('duck', 'n', '2|3|SUBJ'), ('xxx', 'unk', '3|0|ROOT'), ('*MOT', 373)],
[('yyy', 'unk', '1|0|ROOT'), ('*CHI', 375)],
[('what', 'pro', '1|2|OBJ'), ('happen-PAST', 'v', '2|0|ROOT'), ('to', 'prep', '3|2|JCT'), ('the', 'det', '4|5|DET'), ('duck', 'n', '5|3|POBJ'), ('*MOT', 378)],
[('boom', 'int', '1|0|ROOT'), ('*CHI', 379)]]
文に'xxx'
またはが含まれている場合は、文'yyy'
全体を削除したいと思います。私が試したコードは次のとおりです。
wordList = ['xxx','yyy']
for sentence in sentenceList:
for wordTuple in sentence:
for entry in wordTuple:
if entry in wordList:
del sentence
これにより、文全体が削除されます。つまり、次のようになります。
[('the', 'det', '1|2|DET'), ('duck', 'n', '2|3|SUBJ'), ('xxx', 'unk', '3|0|ROOT'), ('*MOT', 373)], [('yyy', 'unk', '1|0|ROOT'), ('*CHI', 375)]
ただし、このコードはタスクを達成していないようです。それを修正する方法はありますか?ありがとう!